package a.f.d;

import a.a.h;
import a.a.qb;
import a.c.bb;
import a.c.d;
import a.c.e;
import a.c.k;
import a.c.m;
import a.c.n;
import a.c.v;
import a.c.x;
import a.c.y;
import a.c.z;
import a.f.cd;
import a.f.ed;
import a.f.o;
import a.i.db;
import a.i.wb;

import java.util.*;

public class r
  implements gb
{
  private x a;
  private v[] b;
  int[] c;
  private e[] d;
  private float[] e;
  private float[] f;
  private Comparator g;
  private Comparator h;
  private Comparator i;
  o j;
  int k;
  bb[] l;
  private wb m;
  private long n = 1000L;
  private long o;
  private z p;
  private z q;
  private v[] r;
  private int s;
  private byte t = 0;
  private boolean u = false;
  private boolean v = true;
  private boolean w = false;
  private static final boolean x = false;
  int[] y;
  int[] z;
  int[] A;
  int[] B;
  static final int C = -2;
  static final int D = -1;
  static final int E = 0;
  static final int F = 1;
  public static final Object G = "y.layout.hierarchic.ClassicLayerSequencer.GROUP_KEY";
  private boolean H = false;
  private int[][] I;
  private int[] J;
  Comparator K;
  Comparator L;
  private Comparator M;
  private Comparator N;
  public static final byte O = 0;
  public static final byte P = 1;
  int Q;
  final int[] R = new int[4];
  private static final int S = 1;
  private static final int T = -1;
  private int U = -1;
  private int V = 40;
  public static boolean W;
  
  public void a(boolean paramBoolean)
  {
    this.v = paramBoolean;
  }
  
  public boolean a()
  {
    return this.v;
  }
  
  public void a(byte paramByte)
  {
    this.t = paramByte;
  }
  
  public byte b()
  {
    return this.t;
  }
  
  public void b(boolean paramBoolean)
  {
    this.u = paramBoolean;
  }
  
  public boolean c()
  {
    return this.u;
  }
  
  public void a(long paramLong)
  {
    this.n = paramLong;
  }
  
  public int d()
  {
    return this.s;
  }
  
  public void a(gb paramgb)
  {
    if ((f.o != 0) || ((paramgb instanceof r)))
    {
      r localr = (r)paramgb;
      b(localr.c());
      a(localr.a());
      e(localr.z());
      a(localr.A());
      a(localr.b());
      b(localr.c());
    }
  }
  
  public bb[] a(o paramo, x paramx, int paramInt)
  {
    int i5 = f.o;
    int i4 = f.n;
    c(paramo, paramx, paramInt);
    this.Q = 0;
    c(false);
    e();
    int i1 = m();
    if (i5 == 0)
    {
      if ((h()) && (i1 > 0))
      {
        int[] arrayOfInt = s();
        int i2 = 0;
        label65:
        if (i2 < this.V) {
          if (i5 == 0) {
            if (i1 <= 0) {
              break label259;
            }
          }
        }
        label175:
        label177:
        label218:
        label227:
        label229:
        label231:
        do
        {
          if (i5 != 0) {
            break label271;
          }
          if (h())
          {
            if (i5 == 0) {
              if ((i2 & 0x3) < 2)
              {
                c(true);
                if (i5 != 0) {
                  break label227;
                }
                if (i4 == 0) {
                  break label218;
                }
              }
            }
            int i3 = 0;
            do
            {
              do
              {
                if (i3 >= this.e.length) {
                  break;
                }
                this.e[i3] = this.m.nextFloat();
                i3++;
                if (i5 != 0) {
                  break label177;
                }
                if (i4 != 0) {
                  break label175;
                }
              } while (i4 == 0);
            } while (i5 != 0);
            i3 = 0;
            do
            {
              if (i3 >= this.l.length) {
                break;
              }
              a(this.l[i3], this.g);
              i3++;
              if (i5 != 0) {
                break label231;
              }
              if (i4 != 0) {
                break label229;
              }
            } while (i4 == 0);
            if (i5 != 0) {
              break label65;
            }
            i3 = m();
            if (i5 == 0)
            {
              if (i3 < i1)
              {
                a(arrayOfInt);
                i1 = i3;
              }
              i2++;
            }
            if (i4 == 0) {
              break;
            }
          }
          b(arrayOfInt);
        } while (i5 != 0);
        label259:
        label271:
        u();
      }
      this.s = i1;
    }
    return g();
  }
  
  void e()
  {
    int i4 = f.o;
    int i3 = f.n;
    label294:
    label296:
    label435:
    label438:
    label449:
    if (i4 == 0)
    {
      if (this.H)
      {
        this.J = new int[this.j.k()];
        this.I = new int[this.l.length][];
      }
    }
    else
    {
      int i1 = 0;
      Object localObject1;
      Object localObject2;
      Object localObject3;
      label195:
      do
      {
        do
        {
          if (i1 >= this.l.length) {
            break;
          }
          localObject1 = new HashSet();
          do
          {
            localObject2 = new HashSet();
            if (i3 != 0) {
              break label324;
            }
            localObject3 = this.l[i1].l();
            do
            {
              if (!((a.c.w)localObject3).e()) {
                break;
              }
              e locale = ((a.c.w)localObject3).d();
              Object localObject4 = a(locale);
              if (i3 != 0) {
                break label195;
              }
              if ((localObject4 instanceof Number))
              {
                Integer localInteger = new Integer(((Number)localObject4).intValue());
                if (i4 != 0) {
                  continue;
                }
                if (!((Set)localObject1).add(localInteger)) {
                  ((Set)localObject2).add(localInteger);
                }
              }
              ((a.c.w)localObject3).f();
            } while (i3 == 0);
          } while (i4 != 0);
          if (((Set)localObject2).size() > 0)
          {
            localObject3 = new ArrayList((Collection)localObject2);
            l.a((List)localObject3, null);
            this.I[i1] = new int[((List)localObject3).size()];
            int i2 = 0;
            do
            {
              if (i2 >= ((List)localObject3).size()) {
                break;
              }
              this.I[i1][i2] = ((Integer)((List)localObject3).get(i2)).intValue();
              i2++;
              if (i4 != 0) {
                break label296;
              }
              if (i3 != 0) {
                break label294;
              }
            } while (i3 == 0);
          }
          if (i4 == 0) {
            i1++;
          }
        } while (i3 == 0);
      } while (i4 != 0);
      i1 = 0;
      label324:
      do
      {
        if (i1 >= this.l.length) {
          break;
        }
        localObject1 = this.l[i1].l();
        do
        {
          do
          {
            if (!((a.c.w)localObject1).e()) {
              break label449;
            }
            localObject2 = ((a.c.w)localObject1).d();
            localObject3 = a((e)localObject2);
            if (i3 != 0) {
              break;
            }
            if ((localObject3 instanceof Number))
            {
              if (i4 == 0) {
                if (this.I[i1] != null)
                {
                  if (i4 != 0) {
                    break label435;
                  }
                  if (Arrays.binarySearch(this.I[i1], ((Number)localObject3).intValue()) >= 0)
                  {
                    this.J[localObject2.f()] = ((Number)localObject3).intValue();
                    if (i4 != 0) {
                      continue;
                    }
                    if (i3 == 0) {
                      break label438;
                    }
                  }
                }
              }
              this.J[localObject2.f()] = -2147483648;
            }
            ((a.c.w)localObject1).f();
          } while (i3 == 0);
          i1++;
        } while (i4 != 0);
      } while (i3 == 0);
    }
  }
  
  private void f()
  {
    int i5 = f.o;
    int i4 = f.n;
    this.z = null;
    this.y = null;
    this.B = null;
    this.A = null;
    k localk1 = this.j.c(ed.a);
    k localk2 = this.j.c(ed.b);
    label1197:
    if ((i5 != 0) || ((localk1 != null) || (localk2 != null)))
    {
      d[] arrayOfd = new d[this.j.l()];
      ArrayList localArrayList1 = new ArrayList(31);
      ArrayList localArrayList2 = new ArrayList(31);
      ArrayList localArrayList3 = new ArrayList(31);
      ArrayList localArrayList4 = new ArrayList(31);
      this.h = new h_();
      this.i = new d_();
      e_ locale_1;
      e_ locale_2;
      a.c.w localw;
      e locale;
      label464:
      label605:
      int i3;
      d locald3;
      double d3;
      label970:
      label973:
      if (i5 == 0) {
        label859:
        if (localk1 != null)
        {
          locale_1 = new e_(true, true);
          locale_2 = new e_(true, false);
          this.y = new int[this.j.m()];
          this.A = new int[this.j.m()];
          localw = this.j.v();
          label745:
          do
          {
            do
            {
              if (!localw.e()) {
                break;
              }
              locale = localw.d();
              localArrayList1.clear();
              localArrayList2.clear();
              localArrayList3.clear();
              localArrayList4.clear();
              if (i4 != 0) {
                break label1205;
              }
              d locald1 = locale.h();
              do
              {
                if (locald1 == null) {
                  break;
                }
                cd localcd1 = (cd)localk1.get(locald1);
                if (i4 != 0) {
                  break label1232;
                }
                if (localcd1 != null)
                {
                  if (i5 != 0) {
                    break label464;
                  }
                  if (localcd1.a()) {}
                }
                else
                {
                  if (i5 == 0) {
                    if (localcd1 == null)
                    {
                      this.y[locald1.d()] = 0;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label605;
                      }
                    }
                  }
                  if (i5 == 0) {
                    if (localcd1.e())
                    {
                      this.y[locald1.d()] = 1;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label605;
                      }
                    }
                  }
                  if (i5 == 0) {
                    if (localcd1.f())
                    {
                      this.y[locald1.d()] = -1;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label605;
                      }
                    }
                  }
                  if (i5 == 0)
                  {
                    if (localcd1.c())
                    {
                      this.y[locald1.d()] = -2;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label605;
                      }
                    }
                    this.y[locald1.d()] = 0;
                  }
                  if (i5 != 0) {
                    continue;
                  }
                  if (i4 == 0) {
                    break label605;
                  }
                }
                if (i5 == 0) {
                  if (localcd1.e())
                  {
                    this.y[locald1.d()] = 1;
                    localArrayList1.add(locald1);
                    if (i5 != 0) {
                      continue;
                    }
                    if (i4 == 0) {
                      break label605;
                    }
                  }
                }
                if (i5 == 0) {
                  if (localcd1.f())
                  {
                    this.y[locald1.d()] = -1;
                    localArrayList2.add(locald1);
                    if (i5 != 0) {
                      continue;
                    }
                    if (i4 == 0) {
                      break label605;
                    }
                  }
                }
                if (i5 == 0)
                {
                  if (localcd1.c())
                  {
                    this.y[locald1.d()] = -2;
                    localArrayList4.add(locald1);
                    if (i5 != 0) {
                      continue;
                    }
                    if (i4 == 0) {}
                  }
                  else
                  {
                    this.y[locald1.d()] = 0;
                  }
                }
                else {
                  localArrayList3.add(locald1);
                }
                locald1 = locald1.i();
              } while (i4 == 0);
              int i1;
              double d1;
              if (i5 == 0)
              {
                if (i5 != 0) {
                  break label1576;
                }
                if (localArrayList1.size() > 0)
                {
                  localArrayList1.toArray(arrayOfd);
                  l.a(arrayOfd, 0, localArrayList1.size(), locale_2);
                  i1 = 0;
                  d1 = -1.797693134862316E+308D;
                  i3 = 0;
                  do
                  {
                    if (i3 >= localArrayList1.size()) {
                      break;
                    }
                    locald3 = arrayOfd[i3];
                    d3 = this.j.p(locald3).b;
                    if (i4 != 0) {
                      break label745;
                    }
                    if (d3 != d1)
                    {
                      d1 = d3;
                      i1++;
                    }
                    this.A[locald3.d()] = i1;
                    i3++;
                  } while (i4 == 0);
                }
                if (i5 != 0) {}
              }
              else
              {
                if (localArrayList2.size() > 0)
                {
                  localArrayList2.toArray(arrayOfd);
                  l.a(arrayOfd, 0, localArrayList2.size(), locale_2);
                  i1 = 0;
                  d1 = -1.797693134862316E+308D;
                  i3 = localArrayList2.size() - 1;
                  do
                  {
                    if (i3 < 0) {
                      break;
                    }
                    locald3 = arrayOfd[i3];
                    d3 = this.j.p(locald3).b;
                    if (i4 != 0) {
                      break label859;
                    }
                    if (d3 != d1)
                    {
                      d1 = d3;
                      i1++;
                    }
                    this.A[locald3.d()] = i1;
                    i3--;
                  } while (i4 == 0);
                }
                if (i5 != 0) {
                  break label970;
                }
              }
              if (localArrayList3.size() > 0)
              {
                localArrayList3.toArray(arrayOfd);
                l.a(arrayOfd, 0, localArrayList3.size(), locale_1);
                i1 = 0;
                d1 = -1.797693134862316E+308D;
                i3 = localArrayList3.size() - 1;
                do
                {
                  if (i3 < 0) {
                    break;
                  }
                  locald3 = arrayOfd[i3];
                  d3 = this.j.p(locald3).a;
                  if (i4 != 0) {
                    break label973;
                  }
                  if (d3 != d1)
                  {
                    d1 = d3;
                    i1++;
                  }
                  this.A[locald3.d()] = i1;
                  i3--;
                } while (i4 == 0);
              }
              if (i5 != 0) {
                break label1197;
              }
              if (localArrayList4.size() > 0)
              {
                localArrayList4.toArray(arrayOfd);
                l.a(arrayOfd, 0, localArrayList4.size(), locale_1);
                i1 = 0;
                d1 = -1.797693134862316E+308D;
                i3 = 0;
                do
                {
                  if (i3 >= localArrayList4.size()) {
                    break label1076;
                  }
                  locald3 = arrayOfd[i3];
                  d3 = this.j.p(locald3).a;
                  if (i4 != 0) {
                    break;
                  }
                  if (d3 != d1)
                  {
                    d1 = d3;
                    i1++;
                  }
                  this.A[locald3.d()] = i1;
                  i3++;
                } while (i4 == 0);
              }
              localw.f();
            } while (i5 != 0);
          } while (i4 == 0);
        }
      }
      label1076:
      label1205:
      label1232:
      label2020:
      if ((i5 == 0) && (localk2 != null))
      {
        locale_1 = new e_(false, true);
        locale_2 = new e_(false, false);
        this.z = new int[this.j.m()];
        this.B = new int[this.j.m()];
        localw = this.j.v();
        label1917:
        do
        {
          do
          {
            if (!localw.e()) {
              break;
            }
            locale = localw.d();
            localArrayList1.clear();
            localArrayList2.clear();
            localArrayList3.clear();
            int i2;
            double d2;
            do
            {
              localArrayList4.clear();
              d locald2 = locale.i();
              do
              {
                if (locald2 == null) {
                  break;
                }
                cd localcd2 = (cd)localk2.get(locald2);
                if (i4 != 0) {
                  break label1680;
                }
                if (localcd2 != null)
                {
                  if (i5 != 0) {
                    break label1408;
                  }
                  if (localcd2.a()) {}
                }
                else
                {
                  if (i5 == 0) {
                    if (localcd2 == null)
                    {
                      this.z[locald2.d()] = 0;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label1549;
                      }
                    }
                  }
                  if (i5 == 0) {
                    if (localcd2.e())
                    {
                      this.z[locald2.d()] = 1;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label1549;
                      }
                    }
                  }
                  if (i5 == 0) {
                    if (localcd2.f())
                    {
                      this.z[locald2.d()] = -1;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label1549;
                      }
                    }
                  }
                  if (i5 == 0)
                  {
                    if (localcd2.d())
                    {
                      this.z[locald2.d()] = -2;
                      if (i5 != 0) {
                        continue;
                      }
                      if (i4 == 0) {
                        break label1549;
                      }
                    }
                    this.z[locald2.d()] = 0;
                  }
                  if (i5 != 0) {
                    continue;
                  }
                  if (i4 == 0) {
                    break label1549;
                  }
                }
                if (i5 == 0) {
                  if (localcd2.e())
                  {
                    this.z[locald2.d()] = 1;
                    localArrayList1.add(locald2);
                    if (i5 != 0) {
                      continue;
                    }
                    if (i4 == 0) {
                      break label1549;
                    }
                  }
                }
                if (i5 == 0) {
                  if (localcd2.f())
                  {
                    this.z[locald2.d()] = -1;
                    localArrayList2.add(locald2);
                    if (i5 != 0) {
                      continue;
                    }
                    if (i4 == 0) {
                      break label1549;
                    }
                  }
                }
                if (i5 == 0)
                {
                  if (localcd2.d())
                  {
                    this.z[locald2.d()] = -2;
                    localArrayList4.add(locald2);
                    if (i5 != 0) {
                      continue;
                    }
                    if (i4 == 0) {}
                  }
                  else
                  {
                    this.z[locald2.d()] = 0;
                  }
                }
                else {
                  localArrayList3.add(locald2);
                }
                locald2 = locald2.j();
              } while (i4 == 0);
              if (i5 == 0)
              {
                if (i5 != 0) {
                  break label1690;
                }
                if (localArrayList1.size() > 0)
                {
                  localArrayList1.toArray(arrayOfd);
                  l.a(arrayOfd, 0, localArrayList1.size(), locale_2);
                  i2 = 0;
                  d2 = -1.797693134862316E+308D;
                  i3 = localArrayList1.size() - 1;
                  do
                  {
                    if (i3 < 0) {
                      break;
                    }
                    locald3 = arrayOfd[i3];
                    d3 = this.j.q(locald3).b;
                    if (i4 != 0) {
                      break label1690;
                    }
                    if (d3 != d2)
                    {
                      d2 = d3;
                      i2++;
                    }
                    this.B[locald3.d()] = i2;
                    i3--;
                  } while (i4 == 0);
                }
                if (i5 != 0) {
                  break label1800;
                }
              }
              if (localArrayList2.size() > 0)
              {
                localArrayList2.toArray(arrayOfd);
                l.a(arrayOfd, 0, localArrayList2.size(), locale_2);
                i2 = 0;
                d2 = -1.797693134862316E+308D;
                i3 = 0;
                do
                {
                  if (i3 >= localArrayList2.size()) {
                    break;
                  }
                  locald3 = arrayOfd[i3];
                  d3 = this.j.q(locald3).b;
                  if (i4 != 0) {
                    break label1803;
                  }
                  if (d3 != d2)
                  {
                    d2 = d3;
                    i2++;
                  }
                  this.B[locald3.d()] = i2;
                  i3++;
                } while (i4 == 0);
              }
              if (i5 != 0) {
                break;
              }
              if (localArrayList3.size() > 0)
              {
                localArrayList3.toArray(arrayOfd);
                l.a(arrayOfd, 0, localArrayList3.size(), locale_1);
                i2 = 0;
                d2 = -1.797693134862316E+308D;
                i3 = localArrayList3.size() - 1;
                do
                {
                  if (i3 < 0) {
                    break;
                  }
                  locald3 = arrayOfd[i3];
                  d3 = this.j.q(locald3).a;
                  if (i4 != 0) {
                    break label1917;
                  }
                  if (d3 != d2)
                  {
                    d2 = d3;
                    i2++;
                  }
                  this.B[locald3.d()] = i2;
                  i3--;
                } while (i4 == 0);
              }
            } while (i5 != 0);
            if (localArrayList4.size() > 0)
            {
              localArrayList4.toArray(arrayOfd);
              l.a(arrayOfd, 0, localArrayList4.size(), locale_1);
              i2 = 0;
              d2 = -1.797693134862316E+308D;
              i3 = 0;
              do
              {
                if (i3 >= localArrayList4.size()) {
                  break label2020;
                }
                locald3 = arrayOfd[i3];
                d3 = this.j.q(locald3).a;
                if (i4 != 0) {
                  break;
                }
                if (d3 != d2)
                {
                  d2 = d3;
                  i2++;
                }
                this.B[locald3.d()] = i2;
                i3++;
              } while (i4 == 0);
            }
            localw.f();
          } while (i5 != 0);
        } while (i4 == 0);
      }
    }
    label1408:
    label1549:
    label1576:
    return;
  }
  
  void c(o paramo, x paramx, int paramInt)
  {
    int i3 = f.o;
    int i2 = f.n;
    this.o = System.currentTimeMillis();
    this.j = paramo;
    this.a = paramx;
    this.p = new z();
    this.q = new z();
    this.k = paramInt;
    this.g = new Comparator()
    {
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        return l.a(r.this.e[((e)paramAnonymousObject1).f()], r.this.e[((e)paramAnonymousObject2).f()]);
      }
    };
    this.m = new wb(666L);
    this.l = new bb[paramInt];
    int i1 = 0;
    do
    {
      do
      {
        if (i1 >= this.l.length) {
          break;
        }
        if (i3 != 0) {
          break label184;
        }
        this.l[i1] = new bb();
        i1++;
        if (i2 != 0) {
          break label183;
        }
      } while (i2 == 0);
      this.c = new int[this.j.k()];
      this.d = new e[this.j.k()];
      this.e = new float[this.j.k() + 1];
    } while (i3 != 0);
    i1 = 0;
    label183:
    label184:
    Object localObject1 = this.j.v();
    do
    {
      if (!((a.c.w)localObject1).e()) {
        break;
      }
      localObject2 = ((a.c.w)localObject1).d();
      i1 = Math.max(i1, Math.max(((e)localObject2).d(), ((e)localObject2).e()));
      ((a.c.w)localObject1).f();
      if ((i3 == 0) && (i2 != 0)) {
        break label272;
      }
    } while (i2 == 0);
    if (i3 == 0) {
      this.r = new v[this.j.l()];
    }
    label272:
    localObject1 = new z();
    Object localObject2 = this.j.w();
    do
    {
      if (!((m)localObject2).e()) {
        break;
      }
      d locald = ((m)localObject2).a();
      v localv = ((z)localObject1).a(locald);
      localv.a(null);
      if (i3 != 0) {
        break label426;
      }
      this.r[locald.d()] = localv;
      ((z)localObject1).b();
      ((m)localObject2).f();
      if (i2 != 0) {
        break label425;
      }
    } while (i2 == 0);
    this.f = new float[i1 + 2];
    this.b = new v[this.j.k()];
    this.M = new ib(this.c, (byte)3);
    if (i3 == 0)
    {
      this.N = new ib(this.c, (byte)4);
      label425:
      label426:
      this.H = (this.j.c(G) != null);
      this.j.a(this.N, this.M);
      f();
      if (i3 == 0) {
        if (this.A == null)
        {
          if (i3 != 0) {
            break label517;
          }
          this.L = new ib(this.c, (byte)1);
          if (i2 == 0) {
            break label516;
          }
        }
      }
      this.L = new g_();
      label516:
      label517:
      if (i3 != 0) {
        break label555;
      }
      if (this.B != null) {}
    }
    else
    {
      this.K = new ib(this.c, (byte)0);
      if (i3 != 0) {
        break label569;
      }
      if (i2 == 0) {
        break label566;
      }
    }
    label555:
    this.K = new f_();
    label566:
    label569:
    if (i3 == 0)
    {
      if (q.n) {
        i2++;
      }
    }
    else {
      f.n = i2;
    }
  }
  
  bb[] g()
  {
    this.a = null;
    this.b = null;
    this.d = null;
    this.e = null;
    this.f = null;
    this.g = null;
    this.L = null;
    this.K = null;
    this.j = null;
    bb[] arrayOfbb = this.l;
    this.l = null;
    this.J = null;
    this.p = null;
    this.q = null;
    this.h = null;
    this.i = null;
    return arrayOfbb;
  }
  
  private boolean h()
  {
    long l1 = System.currentTimeMillis() - this.o;
    if (f.o == 0) {
      if (l1 > this.n) {
        return false;
      }
    }
    return true;
  }
  
  private void i()
  {
    int i2 = f.o;
    int i1 = f.n;
    a.c.w localw = this.j.v();
    if (localw.e()) {}
    while (i2 != 0)
    {
      this.e[localw.d().f()] = this.m.nextInt();
      localw.f();
      if ((i2 == 0) && (i1 != 0)) {
        return;
      }
      if (i1 == 0) {
        break;
      }
    }
    this.j.a(new Comparator()new Comparator
    {
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        return l.a((int)r.this.e[((d)paramAnonymousObject1).e().f()], (int)r.this.e[((d)paramAnonymousObject2).e().f()]);
      }
    }, new Comparator()
    {
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        return l.a((int)r.this.e[((d)paramAnonymousObject1).f().f()], (int)r.this.e[((d)paramAnonymousObject2).f().f()]);
      }
    });
  }
  
  void c(boolean paramBoolean)
  {
    int i3 = f.o;
    int i2 = f.n;
    int i1 = 0;
    do
    {
      do
      {
        if (i1 >= this.l.length) {
          break;
        }
        if (i3 != 0) {
          break label82;
        }
        this.l[i1].clear();
        i1++;
        if (i2 != 0) {
          break label81;
        }
      } while (i2 == 0);
    } while (i3 != 0);
    if (paramBoolean)
    {
      i();
      Arrays.fill(this.c, 0);
      this.j.a(null, this.M);
    }
    label81:
    label82:
    e locale = this.j.p();
    do
    {
      localObject = this.j.v();
      while (i2 == 0)
      {
        if (!((a.c.w)localObject).e()) {
          break;
        }
        if (i3 == 0) {
          if (this.a.getInt(locale) > this.a.getInt(((a.c.w)localObject).d()))
          {
            locale = ((a.c.w)localObject).d();
            if (i3 == 0) {
              if (this.a.getInt(locale) == 0) {
                break;
              }
            }
          }
          else
          {
            ((a.c.w)localObject).f();
          }
        }
      }
    } while (i3 != 0);
    Object localObject = new h()
    {
      protected void a(e paramAnonymouse, int paramAnonymousInt)
      {
        int i = r.this.a.getInt(paramAnonymouse);
        r.this.l[i].b(paramAnonymouse);
      }
    };
    ((h)localObject).a(false);
    ((h)localObject).b(true);
    ((h)localObject).a(this.j, locale);
    t();
  }
  
  private void j()
  {
    this.j.a(this.L, this.K);
  }
  
  int k()
  {
    int i8 = f.o;
    int i7 = f.n;
    if (i8 == 0) {
      if (this.y != null)
      {
        if (i8 != 0) {
          break label40;
        }
        if (this.z != null) {
          return l();
        }
      }
    }
    label40:
    j();
    int i1 = 0;
    int i2 = 1;
    do
    {
      do
      {
        if (i2 >= this.l.length) {
          break;
        }
        if (i8 != 0) {
          break label105;
        }
        int i3 = a(this.l[(i2 - 1)], this.l[i2]);
        i1 += i3;
        i2++;
        if (i7 != 0) {
          break label104;
        }
      } while (i7 == 0);
    } while (i8 != 0);
    i2 = 0;
    label104:
    label105:
    a.c.w localw = this.j.v();
    label270:
    label279:
    do
    {
      do
      {
        if (!localw.e()) {
          break;
        }
        e locale = localw.d();
        if (i8 != 0) {
          break label428;
        }
        if (i7 != 0) {
          return i1;
        }
        int i4;
        int i5;
        int i6;
        d locald;
        do
        {
          if (i8 != 0) {
            break label279;
          }
          if (this.y != null)
          {
            i4 = 0;
            i5 = 0;
            i6 = 0;
            locald = locale.h();
            do
            {
              if (locald == null) {
                break label270;
              }
              if (i7 != 0) {
                break;
              }
              switch (this.y[locald.d()])
              {
              case -2: 
              case -1: 
                i5++;
                i2 += i6 + i4;
                if (i8 != 0) {
                  continue;
                }
                if (i7 == 0) {
                  break;
                }
              case 0: 
                i6++;
                i2 += i4;
                if (i8 != 0) {
                  continue;
                }
                if (i7 == 0) {
                  break;
                }
              case 1: 
                i4++;
              }
              locald = locald.i();
            } while (i7 == 0);
          }
        } while (i8 != 0);
        if (this.z != null)
        {
          i4 = 0;
          i5 = 0;
          i6 = 0;
          locald = locale.i();
          do
          {
            if (locald == null) {
              break label402;
            }
            if (i7 != 0) {
              break;
            }
            switch (this.z[locald.d()])
            {
            case -2: 
            case -1: 
              i5++;
              i2 += i6 + i4;
              if (i8 != 0) {
                continue;
              }
              if (i7 == 0) {
                break;
              }
            case 0: 
              i6++;
              i2 += i4;
              if (i8 != 0) {
                continue;
              }
              if (i7 == 0) {
                break;
              }
            case 1: 
              i4++;
            }
            locald = locald.j();
          } while (i7 == 0);
        }
        localw.f();
      } while (i8 != 0);
    } while (i7 == 0);
    label402:
    if (i8 == 0) {
      i1 += i2;
    }
    label428:
    return i1;
  }
  
  private int a(z paramz1, z paramz2)
  {
    int i3 = f.o;
    int i2 = f.n;
    v localv1 = paramz1.f();
    v localv2 = paramz2.f();
    this.p.clear();
    this.q.clear();
    int i1 = 0;
    do
    {
      if (localv1 == null) {
        break;
      }
      if (i2 != 0) {
        break label126;
      }
      if (localv2 == null) {
        break;
      }
      i1 += a((e)localv1.c(), this.p, this.q, true);
      i1 += a((e)localv2.c(), this.q, this.p, false);
      localv1 = localv1.a();
      localv2 = localv2.a();
    } while (i2 == 0);
    label126:
    do
    {
      if ((i3 != 0) || (localv1 == null)) {
        break;
      }
      i1 += a((e)localv1.c(), this.p, this.q, true);
      localv1 = localv1.a();;
      if ((i3 == 0) && (i2 != 0)) {
        break label232;
      }
    } while (i2 == 0);
    label158:
    label227:
    label232:
    while (i3 != 0)
    {
      break label227;
      if (i3 != 0) {
        break label158;
      }
      if (localv2 != null)
      {
        if (i3 == 0)
        {
          if (i2 != 0) {
            break label239;
          }
          i1 += a((e)localv2.c(), this.q, this.p, false);
          localv2 = localv2.a();
        }
        if (i2 == 0) {
          break;
        }
      }
    }
    label239:
    return i1;
  }
  
  private int a(e parame, z paramz1, z paramz2, boolean paramBoolean)
  {
    int i9 = f.o;
    int i8 = f.n;
    int i1 = 0;
    int i2 = 0;
    int i3 = 0;
    int i4;
    int i5 = this.c[(i4 = parame.f())];
    if ((i9 != 0) || (this.b[i4] != null))
    {
      v localv = this.b[i4].a();
      localObject = paramz1.f();
      if (localObject != localv) {}
      label117:
      label126:
      while (i9 != 0)
      {
        if (i9 == 0)
        {
          if (((v)localObject).c() == parame)
          {
            i1++;
            i3 += i2;
          }
        }
        else
        {
          paramz1.h((v)localObject);
          if (i9 != 0) {
            break label126;
          }
          if (i8 == 0) {
            break label117;
          }
        }
        i2++;
        localObject = ((v)localObject).a();
        if (i8 == 0) {
          break;
        }
      }
      this.b[i4] = null;
    }
    int i6 = i1 * paramz2.size() + i3;
    e locale;
    int i7;
    if (paramBoolean)
    {
      localObject = parame.h();
      do
      {
        if (localObject == null) {
          break;
        }
        i7 = (locale = ((d)localObject).f()).f();
        if ((i9 == 0) && (i8 != 0)) {
          break label303;
        }
        if (this.c[i7] >= i5) {
          this.b[i7] = paramz2.b(locale);
        }
        localObject = ((d)localObject).i();
      } while (i8 == 0);
    }
    Object localObject = parame.i();
    do
    {
      if (localObject == null) {
        break;
      }
      i7 = (locale = ((d)localObject).e()).f();
      if ((i9 == 0) && (i8 != 0)) {
        break label303;
      }
      if (this.c[i7] > i5) {
        this.b[i7] = paramz2.b(locale);
      }
      localObject = ((d)localObject).j();
    } while (i8 == 0);
    label303:
    return i6;
  }
  
  private int l()
  {
    int i4 = f.o;
    int i3 = f.n;
    this.j.a(this.h, this.i);
    int i1 = 0;
    do
    {
      int i2 = this.l.length - 1;
      while (i3 == 0)
      {
        if (i2 <= 0) {
          break;
        }
        if (i4 == 0)
        {
          if (i3 != 0) {
            break label81;
          }
          i1 += c(this.l[(i2 - 1)], this.l[i2]);
          i2--;
        }
      }
    } while (i4 != 0);
    label81:
    return i1;
  }
  
  private int c(z paramz1, z paramz2)
  {
    int i3 = f.o;
    int i2 = f.n;
    v localv1 = paramz1.f();
    v localv2 = paramz2.f();
    this.p.clear();
    this.q.clear();
    int i1 = 0;
    do
    {
      if (localv1 == null) {
        break;
      }
      if (i2 != 0) {
        break label126;
      }
      if (localv2 == null) {
        break;
      }
      i1 += c((e)localv1.c(), this.p, this.q, true);
      i1 += c((e)localv2.c(), this.q, this.p, false);
      localv1 = localv1.a();
      localv2 = localv2.a();
    } while (i2 == 0);
    label126:
    do
    {
      if ((i3 != 0) || (localv1 == null)) {
        break;
      }
      i1 += c((e)localv1.c(), this.p, this.q, true);
      localv1 = localv1.a();;
      if ((i3 == 0) && (i2 != 0)) {
        break label232;
      }
    } while (i2 == 0);
    label158:
    label227:
    label232:
    while (i3 != 0)
    {
      break label227;
      if (i3 != 0) {
        break label158;
      }
      if (localv2 != null)
      {
        if (i3 == 0)
        {
          if (i2 != 0) {
            break label239;
          }
          i1 += c((e)localv2.c(), this.q, this.p, false);
          localv2 = localv2.a();
        }
        if (i2 == 0) {
          break;
        }
      }
    }
    label239:
    return i1;
  }
  
  private int c(e parame, z paramz1, z paramz2, boolean paramBoolean)
  {
    int i9 = f.o;
    int i8 = f.n;
    int i1;
    int i2 = this.c[(i1 = parame.f())];
    int i3 = this.R[0] = this.R[1] = this.R[2] = this.R[3] = 0;
    int i4;
    v localv1;
    int i5;
    v localv4;
    d locald2;
    label386:
    label462:
    if (paramBoolean)
    {
      locald1 = parame.h();
      label381:
      do
      {
        if (locald1 == null) {
          break;
        }
        localv1 = this.r[(i4 = locald1.d())];
        if (i9 == 0) {
          if (localv1.c() == null)
          {
            paramz2.a(localv1);
            localv1.a(locald1);
            this.R[(this.y[i4] + 2)] += 1;
            if (i9 != 0) {
              continue;
            }
            if (i8 == 0) {
              break label462;
            }
          }
        }
        paramz1.h(localv1);
        localv1.a(null);
        i5 = this.A[i4];
        if (i9 == 0) {
          if (i5 > 0)
          {
            v localv2 = localv1;
            if (localv2.b() != null)
            {
              i3++;
              localv2 = localv2.b();
            }
            for (;;)
            {
              if (i9 == 0) {
                if (i8 == 0)
                {
                  if (i8 == 0) {
                    break;
                  }
                  if (i9 != 0) {
                    continue;
                  }
                  i3 += paramz2.size();
                }
              }
            }
            if (i9 != 0) {
              continue;
            }
            if (i8 == 0) {
              break label462;
            }
          }
        }
        int i6 = this.y[i4];
        localv4 = localv1.b();
        do
        {
          if (localv4 == null) {
            break;
          }
          if (i9 != 0) {
            break label386;
          }
          if (i8 != 0) {
            break label381;
          }
          if (this.c[(locald2 = (d)localv4.c()).e().f()] <= i2)
          {
            if (i9 != 0) {
              continue;
            }
            if (this.y[locald2.d()] <= i6) {}
          }
          else
          {
            i3++;
          }
          localv4 = localv4.b();
        } while (i8 == 0);
        if (i9 == 0)
        {
          if (i9 != 0) {}
        }
        else
        {
          switch (i6)
          {
          case -2: 
            i3 += paramz2.size() - this.R[0];
            if (i9 != 0) {
              continue;
            }
            if (i8 == 0) {
              break;
            }
          case -1: 
            i3 += paramz2.size() - this.R[1];
            if (i9 != 0) {
              continue;
            }
            if (i8 == 0) {
              break;
            }
          case 0: 
            i3 += paramz2.size() - this.R[2];
            if (i9 != 0) {
              continue;
            }
            if (i8 == 0) {
              break;
            }
          case 1: 
            i3 += paramz2.size() - this.R[3];
          }
          locald1 = locald1.i();
        }
      } while (i8 == 0);
    }
    d locald1 = parame.i();
    label797:
    label802:
    label878:
    do
    {
      if (locald1 == null) {
        break;
      }
      localv1 = this.r[(i4 = locald1.d())];
      if (i9 == 0) {
        if (localv1.c() == null)
        {
          paramz2.a(localv1);
          localv1.a(locald1);
          this.R[(this.z[i4] + 2)] += 1;
          if (i9 != 0) {
            continue;
          }
          if (i8 == 0) {
            break label878;
          }
        }
      }
      paramz1.h(localv1);
      localv1.a(null);
      i5 = this.B[i4];
      if (i9 == 0) {
        if (i5 > 0)
        {
          v localv3 = localv1;
          if (localv3.b() != null)
          {
            i3++;
            localv3 = localv3.b();
          }
          for (;;)
          {
            if (i9 == 0) {
              if (i8 == 0)
              {
                if (i8 == 0) {
                  break;
                }
                if (i9 != 0) {
                  continue;
                }
                i3 += paramz2.size();
              }
            }
          }
          if (i9 != 0) {
            continue;
          }
          if (i8 == 0) {
            break label878;
          }
        }
      }
      int i7 = this.z[i4];
      localv4 = localv1.b();
      do
      {
        if (localv4 == null) {
          break;
        }
        locald2 = (d)localv4.c();
        if (i9 != 0) {
          break label802;
        }
        if (i8 != 0) {
          break label797;
        }
        if (this.c[locald2.f().f()] <= i2)
        {
          if (i9 != 0) {
            continue;
          }
          if (this.z[locald2.d()] <= i7) {}
        }
        else
        {
          i3++;
        }
        localv4 = localv4.b();
      } while (i8 == 0);
      if (i9 == 0)
      {
        if (i9 != 0) {}
      }
      else
      {
        switch (i7)
        {
        case -2: 
          i3 += paramz2.size() - this.R[0];
          if (i9 != 0) {
            continue;
          }
          if (i8 == 0) {
            break;
          }
        case -1: 
          i3 += paramz2.size() - this.R[1];
          if (i9 != 0) {
            continue;
          }
          if (i8 == 0) {
            break;
          }
        case 0: 
          i3 += paramz2.size() - this.R[2];
          if (i9 != 0) {
            continue;
          }
          if (i8 == 0) {
            break;
          }
        case 1: 
          i3 += paramz2.size() - this.R[3];
        }
        locald1 = locald1.j();
      }
    } while (i8 == 0);
    return i3;
  }
  
  int m()
  {
    int i8 = f.o;
    int i7 = f.n;
    if (i8 == 0)
    {
      if (this.H) {
        y();
      }
      qb.a();
    }
    int[] arrayOfInt = s();
    int i1 = k();
    boolean bool = true;
    int i3 = 1;
    int i4 = 0;
    if (i4 < 4) {}
    label112:
    label114:
    do
    {
      if (i7 != 0) {
        break label152;
      }
      if ((h()) && ((i8 != 0) || (i1 > 0)))
      {
        int i2 = d(bool);
        if (i8 == 0)
        {
          if (i2 < i1)
          {
            a(arrayOfInt);
            i1 = i2;
          }
        }
        else
        {
          if (i8 != 0) {
            break label114;
          }
          if (i7 == 0) {
            break label112;
          }
        }
        i4++;
        if (i8 == 0) {}
        bool = !bool;
        if (i7 == 0) {
          break;
        }
      }
      b(arrayOfInt);
      u();
    } while (i8 != 0);
    if (this.u) {
      label152:
      if (i8 == 0)
      {
        if (i1 > 0) {
          i3 = 1;
        }
      }
      else
      {
        int i5 = 0;
        if (i3 == 1)
        {
          if (i7 != 0) {
            break label257;
          }
          if (i1 > 0)
          {
            n();
            o();
          }
        }
        label231:
        label239:
        do
        {
          int i6 = k();
          if (i8 == 0) {
            if (i6 < i1)
            {
              i3 = 1;
              a(arrayOfInt);
              if (i8 != 0) {
                break label239;
              }
              if (i7 == 0) {
                break label231;
              }
            }
          }
          i3 = -1;
          i1 = i6;
          i5++;
          if (i7 == 0) {
            break;
          }
          b(arrayOfInt);
        } while (i8 != 0);
        u();
      }
    }
    label257:
    return i1;
  }
  
  private void n()
  {
    int i7 = f.o;
    int i6 = f.n;
    n localn = p();
    int[] arrayOfInt = s();
    z[][] arrayOfz; = new z[this.j.k()][];
    int i4 = this.l.length - 1;
    Object localObject2;
    e locale2;
    e locale1;
    int i1;
    Object localObject1;
    label260:
    label262:
    label265:
    do
    {
      do
      {
        if (i4 < 0) {
          break;
        }
        if (i6 != 0) {
          break label311;
        }
        localObject2 = this.l[i4].h();
        do
        {
          do
          {
            do
            {
              if (!((y)localObject2).e()) {
                break label265;
              }
              locale2 = (e)((y)localObject2).j();
              if (i6 != 0) {
                break label293;
              }
              if ((locale2.d() == 1) && (((i7 == 0) && ((locale2.e() == 1) && (i7 != 0))) || ((!this.H) || ((i7 != 0) || (this.J[locale2.f()] == -2147483648)))))
              {
                locale1 = (e)localn.get(locale2.h());
                if ((locale1 != null) && (arrayOfz;[locale1.f()] == null))
                {
                  int i2 = a(locale2, locale1);
                  i1 = locale1.f();
                  localObject1 = arrayOfz;[i1] =  = new z[i2 + 1];
                  int i5 = localObject1.length - 1;
                  do
                  {
                    if (i5 < 0) {
                      break;
                    }
                    localObject1[i5] = new z();
                    i5--;
                    if (i7 != 0) {
                      break label262;
                    }
                    if (i6 != 0) {
                      break label260;
                    }
                  } while (i6 == 0);
                }
              }
            } while (i7 != 0);
            ((y)localObject2).f();
          } while (i6 == 0);
          i4--;
        } while (i7 != 0);
      } while (i6 == 0);
    } while (i7 != 0);
    i4 = 0;
    label293:
    label311:
    label337:
    label340:
    int i3;
    label436:
    d locald;
    label513:
    label520:
    label530:
    do
    {
      if (i4 >= this.l.length) {
        break;
      }
      break label340;
      break label337;
      if (i6 != 0) {
        break label544;
      }
      localObject2 = this.l[i4].h();
      do
      {
        do
        {
          if (!((y)localObject2).e()) {
            break label530;
          }
          locale2 = (e)((y)localObject2).j();
          if (i6 != 0) {
            break label293;
          }
          if (locale2.d() == 1)
          {
            if (i7 != 0) {
              break label436;
            }
            if (locale2.e() == 1)
            {
              locale1 = (e)localn.get(locale2.h());
              if (i7 != 0) {
                break label520;
              }
              if (locale1 == null) {
                break label513;
              }
              i1 = locale1.f();
              i3 = a(locale2, locale1) - 1;
              arrayOfz;[i1][i3].b(locale2.i());
              if (i7 != 0) {
                continue;
              }
              if (i6 == 0) {
                break label513;
              }
            }
          }
          locald = locale2.i();
          do
          {
            if (locald == null) {
              break label513;
            }
            locale1 = (e)localn.get(locald);
            if (i6 != 0) {
              break;
            }
            if (locale1 != null)
            {
              i1 = locale1.f();
              i3 = a(locale2, locale1) - 1;
              arrayOfz;[i1][i3].b(locald);
            }
            locald = locald.j();
          } while (i6 == 0);
          ((y)localObject2).f();
          if (i7 != 0) {
            break;
          }
        } while (i6 == 0);
        i4++;
      } while (i7 != 0);
    } while (i6 == 0);
    label544:
    a.c.w localw = this.j.v();
    label643:
    label649:
    label674:
    label675:
    label680:
    label751:
    do
    {
      if (!localw.e()) {
        break;
      }
      locale2 = localw.d();
      do
      {
        if (i6 != 0) {
          return;
        }
        if (arrayOfz;[locale2.f()] != null)
        {
          localObject2 = locale2.h();
          do
          {
            if (localObject2 == null) {
              break label875;
            }
            locale1 = (e)localn.get(localObject2);
            if (i6 != 0) {
              break;
            }
            if (locale1 != null)
            {
              localObject1 = arrayOfz;[locale1.f()];
              do
              {
                break label751;
                break label751;
                if (localObject1[0].size() <= 0) {
                  break;
                }
                i3 = 0;
                locald = (d)localObject1[i3].a();
                e locale3 = locald.f();
                break label675;
                break label680;
                if (locale3.d() == 1) {}
                do
                {
                  if (i6 != 0) {
                    break label675;
                  }
                  do
                  {
                    if (locale3.e() == 1)
                    {
                      i3++;
                      if (i6 == 0) {
                        break label649;
                      }
                    }
                    locale4 = ((d)localObject1[i3].b()).f();
                    i3--;
                    locale4 = locald.e();
                    locald = (d)localObject1[i3].b();
                    if (i7 != 0) {
                      break label674;
                    }
                    locale3 = locald.f();
                    if (i3 < 0) {
                      break;
                    }
                  } while (i7 != 0);
                  if (i6 != 0) {
                    break label674;
                  }
                  if (arrayOfInt[locale4.f()] != arrayOfInt[locale3.f()]) {
                    this.c[locale4.f()] = arrayOfInt[locale3.f()];
                  }
                  e locale4 = locale4.i().e();
                  i3--;
                  if (i3 < 0) {
                    break;
                  }
                  locald = (d)localObject1[i3].b();
                  locale3 = locald.f();
                  if (i7 != 0) {
                    break label643;
                  }
                  if (i7 != 0) {
                    break label872;
                  }
                  if (i6 != 0) {
                    break label870;
                  }
                } while (i7 != 0);
              } while (i6 == 0);
            }
            localObject2 = ((d)localObject2).i();
          } while (i6 == 0);
        }
        localw.f();
      } while (i7 != 0);
    } while (i6 == 0);
    label870:
    label872:
    label875:
    u();
    if (i7 == 0) {
      this.j.a(localn);
    }
  }
  
  private void o()
  {
    int i7 = f.o;
    int i6 = f.n;
    n localn = q();
    int[] arrayOfInt = s();
    z[][] arrayOfz; = new z[this.j.k()][];
    int i4 = 0;
    Object localObject2;
    e locale2;
    e locale1;
    int i1;
    Object localObject1;
    label259:
    label261:
    label264:
    do
    {
      if (i4 >= this.l.length) {
        break;
      }
      if (i6 != 0) {
        break label311;
      }
      localObject2 = this.l[i4].h();
      do
      {
        do
        {
          do
          {
            if (!((y)localObject2).e()) {
              break label264;
            }
            locale2 = (e)((y)localObject2).j();
            if (i6 != 0) {
              break;
            }
            if ((locale2.d() == 1) && (((i7 == 0) && ((locale2.e() == 1) && (i7 != 0))) || ((!this.H) || ((i7 != 0) || (this.J[locale2.f()] == -2147483648)))))
            {
              locale1 = (e)localn.get(locale2.i());
              if ((locale1 != null) && (arrayOfz;[locale1.f()] == null))
              {
                int i2 = a(locale1, locale2);
                i1 = locale1.f();
                localObject1 = arrayOfz;[i1] =  = new z[i2 + 1];
                int i5 = localObject1.length - 1;
                do
                {
                  if (i5 < 0) {
                    break;
                  }
                  localObject1[i5] = new z();
                  i5--;
                  if (i7 != 0) {
                    break label261;
                  }
                  if (i6 != 0) {
                    break label259;
                  }
                } while (i6 == 0);
              }
            }
          } while (i7 != 0);
          ((y)localObject2).f();
        } while (i6 == 0);
        i4++;
      } while (i7 != 0);
    } while (i6 == 0);
    if (i7 == 0) {
      i4 = this.l.length - 1;
    }
    label293:
    label311:
    label337:
    label340:
    int i3;
    label441:
    d locald;
    label518:
    label525:
    label535:
    do
    {
      if (i4 < 0) {
        break;
      }
      break label340;
      break label337;
      if (i6 != 0) {
        break label549;
      }
      localObject2 = this.l[i4].h();
      do
      {
        do
        {
          if (!((y)localObject2).e()) {
            break label535;
          }
          locale2 = (e)((y)localObject2).j();
          if (i6 != 0) {
            break label293;
          }
          if (i7 == 0)
          {
            if (locale2.d() == 1) {
              if (i7 != 0) {
                break label441;
              }
            }
          }
          else if (locale2.e() == 1)
          {
            locale1 = (e)localn.get(locale2.i());
            if (i7 != 0) {
              break label525;
            }
            if (locale1 == null) {
              break label518;
            }
            i1 = locale1.f();
            i3 = a(locale1, locale2) - 1;
            arrayOfz;[i1][i3].b(locale2.h());
            if (i7 != 0) {
              continue;
            }
            if (i6 == 0) {
              break label518;
            }
          }
          locald = locale2.h();
          do
          {
            if (locald == null) {
              break label518;
            }
            locale1 = (e)localn.get(locald);
            if (i6 != 0) {
              break;
            }
            if (locale1 != null)
            {
              i1 = locale1.f();
              i3 = a(locale1, locale2) - 1;
              arrayOfz;[i1][i3].b(locald);
            }
            locald = locald.i();
          } while (i6 == 0);
          ((y)localObject2).f();
          if (i7 != 0) {
            break;
          }
        } while (i6 == 0);
        i4--;
      } while (i7 != 0);
    } while (i6 == 0);
    label549:
    a.c.w localw = this.j.v();
    label648:
    label654:
    label679:
    label680:
    label685:
    label756:
    do
    {
      if (!localw.e()) {
        break;
      }
      locale2 = localw.d();
      do
      {
        if (i6 != 0) {
          return;
        }
        if (arrayOfz;[locale2.f()] != null)
        {
          localObject2 = locale2.i();
          do
          {
            if (localObject2 == null) {
              break label880;
            }
            locale1 = (e)localn.get(localObject2);
            if (i6 != 0) {
              break;
            }
            if (locale1 != null)
            {
              localObject1 = arrayOfz;[locale1.f()];
              do
              {
                break label756;
                break label756;
                if (localObject1[0].size() <= 0) {
                  break;
                }
                i3 = 0;
                locald = (d)localObject1[i3].a();
                e locale3 = locald.e();
                break label680;
                break label685;
                if (locale3.d() == 1) {}
                do
                {
                  if (i6 != 0) {
                    break label680;
                  }
                  do
                  {
                    if (locale3.e() == 1)
                    {
                      i3++;
                      if (i6 == 0) {
                        break label654;
                      }
                    }
                    locale4 = ((d)localObject1[i3].b()).e();
                    i3--;
                    locale4 = locald.f();
                    locald = (d)localObject1[i3].b();
                    if (i7 != 0) {
                      break label679;
                    }
                    locale3 = locald.e();
                    if (i3 < 0) {
                      break;
                    }
                  } while (i7 != 0);
                  if (i6 != 0) {
                    break label679;
                  }
                  if (arrayOfInt[locale4.f()] != arrayOfInt[locale3.f()]) {
                    this.c[locale4.f()] = arrayOfInt[locale3.f()];
                  }
                  e locale4 = locale4.h().f();
                  i3--;
                  if (i3 < 0) {
                    break;
                  }
                  locald = (d)localObject1[i3].b();
                  locale3 = locald.e();
                  if (i7 != 0) {
                    break label648;
                  }
                  if (i7 != 0) {
                    break label877;
                  }
                  if (i6 != 0) {
                    break label875;
                  }
                } while (i7 != 0);
              } while (i6 == 0);
            }
            localObject2 = ((d)localObject2).j();
          } while (i6 == 0);
        }
        localw.f();
      } while (i7 != 0);
    } while (i6 == 0);
    label875:
    label877:
    label880:
    if (i7 == 0) {
      u();
    }
  }
  
  private int a(e parame1, e parame2)
  {
    return this.a.getInt(parame1) - this.a.getInt(parame2);
  }
  
  private n p()
  {
    int i3 = f.o;
    int i2 = f.n;
    n localn = db.b(new e[this.j.m()]);
    a.c.w localw = this.j.v();
    label160:
    label293:
    do
    {
      if (!localw.e()) {
        break;
      }
      e locale1 = localw.d();
      if (locale1.e() > 1) {}
      do
      {
        int i1 = 0;
        d locald1 = locale1.h();
        e locale2;
        do
        {
          if (locald1 == null) {
            break;
          }
          locale2 = locald1.f();
          if (i2 != 0) {
            break label160;
          }
          if (locale2.d() == 1)
          {
            if (i3 != 0) {
              continue;
            }
            if (locale2.e() == 1) {
              if ((i3 != 0) || (this.H))
              {
                if (i3 != 0) {
                  continue;
                }
                if (this.J[locale2.f()] != -2147483648) {}
              }
              else
              {
                i1++;
              }
            }
          }
          locald1 = locald1.i();
        } while (i2 == 0);
        if (i3 == 0)
        {
          if (i1 > 1)
          {
            locald1 = locale1.h();
            do
            {
              if (locald1 == null) {
                break label293;
              }
              d locald2 = locald1;
              locale2 = locald2.f();
              if (i2 != 0) {
                break;
              }
              if (locale2.d() == 1)
              {
                if (i3 != 0) {
                  continue;
                }
                if (locale2.e() == 1)
                {
                  if (locale2.d() == 1)
                  {
                    if (i2 != 0) {
                      break;
                    }
                    if (locale2.e() != 1) {}
                  }
                  while (i3 != 0)
                  {
                    localn.a(locald2, locale1);
                    locald2 = locale2.h();
                    locale2 = locald2.f();
                    if (i2 == 0) {
                      break;
                    }
                  }
                  localn.a(locald2, locale1);
                }
              }
              locald1 = locald1.i();
            } while (i2 == 0);
          }
          localw.f();
        }
      } while (i3 != 0);
    } while (i2 == 0);
    return localn;
  }
  
  private n q()
  {
    int i3 = f.o;
    int i2 = f.n;
    n localn = db.b(new e[this.j.m()]);
    a.c.w localw = this.j.v();
    label160:
    label293:
    label306:
    do
    {
      if (!localw.e()) {
        break;
      }
      e locale1 = localw.d();
      if (locale1.d() > 1) {}
      do
      {
        int i1 = 0;
        d locald1 = locale1.i();
        e locale2;
        do
        {
          if (locald1 == null) {
            break;
          }
          locale2 = locald1.e();
          if (i2 != 0) {
            break label160;
          }
          if (locale2.d() == 1)
          {
            if (i3 != 0) {
              continue;
            }
            if (locale2.e() == 1) {
              if ((i3 != 0) || (this.H))
              {
                if (i3 != 0) {
                  continue;
                }
                if (this.J[locale2.f()] != -2147483648) {}
              }
              else
              {
                i1++;
              }
            }
          }
          locald1 = locald1.j();
        } while (i2 == 0);
        if (i3 != 0) {
          break label306;
        }
        if (i1 > 1)
        {
          locald1 = locale1.i();
          do
          {
            if (locald1 == null) {
              break label293;
            }
            d locald2 = locald1;
            locale2 = locald2.e();
            if (i2 != 0) {
              break;
            }
            if (locale2.d() == 1)
            {
              if (i3 != 0) {
                continue;
              }
              if (locale2.e() == 1)
              {
                if (locale2.d() == 1)
                {
                  if (i2 != 0) {
                    break;
                  }
                  if (locale2.e() != 1) {}
                }
                while (i3 != 0)
                {
                  localn.a(locald2, locale1);
                  locald2 = locale2.i();
                  locale2 = locald2.e();
                  if (i2 == 0) {
                    break;
                  }
                }
                localn.a(locald2, locale1);
              }
            }
            locald1 = locald1.j();
          } while (i2 == 0);
        }
        localw.f();
      } while (i3 != 0);
    } while (i2 == 0);
    return localn;
  }
  
  private void r()
  {
    int i5 = f.o;
    int i4 = f.n;
    int i1 = 0;
    label105:
    do
    {
      if (i1 >= this.l.length) {
        break;
      }
      bb localbb = this.l[i1];
      int[] arrayOfInt = this.m.a(localbb.size(), 0, localbb.size());
      int i2 = 0;
      e locale;
      int i3;
      do
      {
        v localv1 = localbb.f();
        do
        {
          if (localv1 == null) {
            break label105;
          }
          locale = (e)localv1.c();
          this.d[arrayOfInt[i2]] = locale;
          localv1 = localv1.a();
          i2++;
          if ((i5 == 0) && (i4 != 0)) {
            break;
          }
        } while (i4 == 0);
        i3 = 0;
      } while (i5 != 0);
      v localv2 = localbb.f();
      do
      {
        if (localv2 == null) {
          break;
        }
        locale = this.d[i3];
        localv2.a(locale);
        this.c[locale.f()] = i3;
        localv2 = localv2.a();
        i3++;
        if (i5 != 0) {
          break label184;
        }
        if (i4 != 0) {
          break label182;
        }
      } while (i4 == 0);
      if (i5 == 0) {
        i1++;
      }
    } while (i4 == 0);
    label182:
    label184:
    return;
  }
  
  private int d(boolean paramBoolean)
  {
    int i3 = f.o;
    int i2 = f.n;
    if (i3 == 0) {
      if (paramBoolean)
      {
        i1 = 1;
        do
        {
          if (i1 >= this.l.length) {
            break;
          }
          a(i1);
          i1++;
          if (i3 != 0) {
            break label108;
          }
          if (i2 != 0) {
            break label104;
          }
        } while (i2 == 0);
      }
    }
    int i1 = this.l.length - 2;
    while (i3 != 0) {
      do
      {
        if (i1 < 0) {
          break;
        }
        b(i1);
        i1--;
        if (i3 != 0) {
          break label108;
        }
        if (i2 != 0) {
          break label104;
        }
      } while (i2 == 0);
    }
    if (i3 == 0) {
      if (this.v) {
        v();
      }
    }
    label104:
    label108:
    return k();
  }
  
  void a(int paramInt)
  {
    int i5 = f.o;
    int i4 = f.n;
    bb localbb1 = this.l[(paramInt - 1)];
    bb localbb2 = this.l[paramInt];
    int i1 = localbb1.size();
    int i2 = localbb2.size();
    v localv = localbb2.f();
    if (localv != null) {}
    label181:
    do
    {
      e locale = (e)localv.c();
      int i3 = locale.f();
      if (i4 != 0) {
        break label202;
      }
      switch (this.t)
      {
      case 0: 
        this.e[i3] = b(locale, i2, false, i1);
        if (i5 != 0) {
          break label181;
        }
        if (i4 == 0) {
          break;
        }
      case 1: 
        this.e[i3] = a(locale, i2, false, i1);
      }
      this.e[i3] += this.c[i3] / (i1 * 200);
      localv = localv.a();
      if (i4 == 0) {
        break;
      }
      a(localbb2, this.g);
    } while (i5 != 0);
    if (this.v)
    {
      label202:
      a(localbb2, true, false);
      b(localbb2, true, false);
      a(localbb1, false, true);
    }
    if ((i5 != 0) || (this.H)) {
      a(paramInt, true, false);
    }
  }
  
  void b(int paramInt)
  {
    int i5 = f.o;
    int i4 = f.n;
    bb localbb1 = this.l[(paramInt + 1)];
    bb localbb2 = this.l[paramInt];
    int i1 = localbb1.size();
    int i2 = localbb2.size();
    v localv = localbb2.f();
    if (localv != null) {}
    label181:
    do
    {
      e locale = (e)localv.c();
      int i3 = locale.f();
      if (i4 != 0) {
        break label202;
      }
      switch (this.t)
      {
      case 0: 
        this.e[i3] = b(locale, i2, true, i1);
        if (i5 != 0) {
          break label181;
        }
        if (i4 == 0) {
          break;
        }
      case 1: 
        this.e[i3] = a(locale, i2, true, i1);
      }
      this.e[i3] += this.c[i3] / (i1 * 200);
      localv = localv.a();
      if (i4 == 0) {
        break;
      }
      a(localbb2, this.g);
    } while (i5 != 0);
    if (this.v)
    {
      label202:
      a(localbb2, false, true);
      b(localbb2, false, true);
      a(localbb1, true, false);
    }
    if ((i5 != 0) || (this.H)) {
      a(paramInt, false, true);
    }
  }
  
  private float a(e parame, int paramInt1, boolean paramBoolean, int paramInt2)
  {
    int i5 = f.o;
    int i4 = f.n;
    int i1 = 0;
    int i3;
    if (paramBoolean)
    {
      locald = parame.h();
      do
      {
        if (locald == null) {
          break;
        }
        f1 = this.c[locald.f().f()];
        if (i5 != 0) {
          break label392;
        }
        if (i4 != 0) {
          break label383;
        }
        if ((i5 != 0) || (this.z != null))
        {
          if (i5 == 0) {}
          switch (this.z[(i3 = locald.d())])
          {
          case 1: 
            if (i5 == 0)
            {
              f1 += 0.3F;
              if (i4 == 0) {
                break;
              }
            }
            break;
          case -1: 
            if (i5 == 0)
            {
              f1 -= 0.3F;
              if (i4 == 0) {
                break;
              }
            }
            break;
          case -2: 
            f1 -= 0.31F;
          }
          f1 += this.B[i3] * 0.01F;
        }
        this.f[i1] = f1;
        locald = locald.i();
        i1++;
      } while (i4 == 0);
    }
    d locald = parame.i();
    do
    {
      if (locald == null) {
        break;
      }
      f1 = this.c[locald.e().f()];
      if (i5 != 0) {
        break label392;
      }
      if (i4 != 0) {
        break label383;
      }
      if ((i5 != 0) || (this.y != null))
      {
        if (i5 == 0) {}
        switch (this.y[(i3 = locald.d())])
        {
        case 1: 
          if (i5 == 0)
          {
            f1 += 0.3F;
            if (i4 == 0) {
              break;
            }
          }
          break;
        case -1: 
          if (i5 == 0)
          {
            f1 -= 0.3F;
            if (i4 == 0) {
              break;
            }
          }
          break;
        case -2: 
          f1 -= 0.31F;
        }
        f1 += this.A[i3] * 0.01F;
      }
      this.f[i1] = f1;
      locald = locald.j();
      i1++;
    } while (i4 == 0);
    if (i5 == 0) {
      label383:
      Arrays.sort(this.f, 0, i1);
    }
    label392:
    int i2 = i1 >> 1;
    if (i5 == 0) {
      if (i1 == 0) {
        return (paramInt2 - 1) * this.c[parame.f()] / (paramInt1 - 1);
      }
    }
    if (i5 == 0) {
      if (i1 % 2 == 1) {
        return this.f[i2];
      }
    }
    if (i1 == 2) {
      return (this.f[0] + this.f[1]) * 0.5F;
    }
    float f1 = this.f[(i2 - 1)] - this.f[0];
    float f2 = this.f[(i1 - 1)] - this.f[i2];
    if (i5 == 0) {
      if (f1 == 0.0F)
      {
        if (i5 != 0) {
          break label583;
        }
        if (f2 == 0.0F) {
          break label564;
        }
      }
    }
    return (this.f[(i2 - 1)] * f2 + this.f[i2] * f1) / (f1 + f2);
    label564:
    label583:
    return (this.f[(i2 - 1)] + this.f[i2]) * 0.5F;
  }
  
  private float b(e parame, int paramInt1, boolean paramBoolean, int paramInt2)
  {
    int i4 = f.o;
    int i3 = f.n;
    float f1 = 0.0F;
    if (i4 == 0) {}
    int i1 = paramBoolean ? parame.e() : parame.d();
    if (i4 == 0) {
      if (i1 == 0)
      {
        if (i4 != 0) {
          break label440;
        }
        f1 = (paramInt2 - 1) * this.c[parame.f()] / (paramInt1 - 1);
        if (i3 == 0) {
          break label438;
        }
      }
    }
    d locald;
    int i2;
    if (paramBoolean)
    {
      locald = parame.h();
      do
      {
        if (locald == null) {
          break;
        }
        if (i4 != 0) {
          break label440;
        }
        f1 += this.c[locald.f().f()];
        if (i3 != 0) {
          break label438;
        }
        if ((i4 != 0) || (this.z != null))
        {
          if (i4 == 0) {}
          switch (this.z[(i2 = locald.d())])
          {
          case 1: 
            if (i4 == 0)
            {
              f1 += 0.3F;
              if (i3 == 0) {
                break;
              }
            }
            break;
          case -1: 
            if (i4 == 0)
            {
              f1 -= 0.3F;
              if (i3 == 0) {
                break;
              }
            }
            break;
          case -2: 
            f1 -= 0.31F;
          }
          f1 += this.B[i2] * 0.01F;
        }
        locald = locald.i();
      } while (i3 == 0);
    }
    if (i4 == 0)
    {
      locald = parame.i();
      if (locald != null) {}
      for (;;)
      {
        if (i4 == 0)
        {
          f1 += this.c[locald.e().f()];
          if (i3 == 0)
          {
            if ((i4 != 0) || (this.y != null))
            {
              if (i4 == 0) {}
              switch (this.y[(i2 = locald.d())])
              {
              case 1: 
                if (i4 == 0)
                {
                  f1 += 0.3F;
                  if (i3 == 0) {
                    break;
                  }
                }
                break;
              case -1: 
                if (i4 == 0)
                {
                  f1 -= 0.3F;
                  if (i3 == 0) {
                    break;
                  }
                }
                break;
              case -2: 
                f1 -= 0.31F;
              }
              f1 += this.A[i2] * 0.01F;
            }
            locald = locald.j();
            if (i3 == 0) {
              break;
            }
            if (i4 != 0) {
              continue;
            }
            f1 /= i1;
          }
        }
      }
    }
    label438:
    label440:
    return f1;
  }
  
  private void a(int[] paramArrayOfInt)
  {
    System.arraycopy(this.c, 0, paramArrayOfInt, 0, paramArrayOfInt.length);
  }
  
  private void b(int[] paramArrayOfInt)
  {
    System.arraycopy(paramArrayOfInt, 0, this.c, 0, paramArrayOfInt.length);
  }
  
  private int[] s()
  {
    int[] arrayOfInt = new int[this.c.length];
    a(arrayOfInt);
    return arrayOfInt;
  }
  
  private void t()
  {
    int i4 = f.o;
    int i3 = f.n;
    int i2 = 0;
    do
    {
      if (i2 >= this.l.length) {
        break;
      }
      int i1 = 0;
      v localv = this.l[i2].f();
      if (localv != null)
      {
        this.c[((e)localv.c()).f()] = i1;
        localv = localv.a();
        i1++;
      }
      for (;;)
      {
        if (i4 == 0) {
          if (i3 == 0)
          {
            if (i3 == 0) {
              break;
            }
            if (i4 != 0) {
              continue;
            }
            i2++;
          }
        }
      }
    } while (i3 == 0);
  }
  
  private void u()
  {
    int i4 = f.o;
    int i3 = f.n;
    int i1 = 0;
    label83:
    do
    {
      if (i1 >= this.l.length) {
        break;
      }
      bb localbb = this.l[i1];
      int i2;
      do
      {
        v localv = localbb.f();
        do
        {
          if (localv == null) {
            break label83;
          }
          localObject = (e)localv.c();
          this.d[this.c[localObject.f()]] = localObject;
          localv = localv.a();
          if ((i4 == 0) && (i3 != 0)) {
            break;
          }
        } while (i3 == 0);
        i2 = 0;
      } while (i4 != 0);
      Object localObject = localbb.f();
      if (localObject != null)
      {
        ((v)localObject).a(this.d[i2]);
        localObject = ((v)localObject).a();
        i2++;
      }
      for (;;)
      {
        if (i4 == 0) {
          if (i3 == 0)
          {
            if (i3 == 0) {
              break;
            }
            if (i4 != 0) {
              continue;
            }
            i1++;
          }
        }
      }
    } while (i3 == 0);
  }
  
  private void a(z paramz, Comparator paramComparator)
  {
    int i3 = f.o;
    int i2 = f.n;
    y localy = paramz.h();
    int i1 = 0;
    do
    {
      do
      {
        if (i1 >= paramz.size()) {
          break;
        }
        this.d[i1] = ((e)localy.j());
        i1++;
        localy.f();
        if ((i3 == 0) && (i2 != 0)) {
          break label88;
        }
      } while (i2 == 0);
      l.a(this.d, 0, paramz.size(), paramComparator);
    } while (i3 != 0);
    i1 = 0;
    label88:
    v localv = paramz.f();
    do
    {
      while (i2 == 0)
      {
        if (localv == null) {
          break;
        }
        localv.a(this.d[i1]);
        this.c[this.d[i1].f()] = i1;
        localv = localv.a();
        i1++;
      }
    } while (i3 != 0);
  }
  
  private void a(String paramString)
  {
    System.out.println(paramString);
  }
  
  private void v()
  {
    a(0, this.l.length - 1);
  }
  
  void a(int paramInt1, int paramInt2)
  {
    int i3 = f.o;
    int i2 = f.n;
    int i1;
    bb localbb;
    if (i3 == 0) {
      if (paramInt1 <= paramInt2) {
        do
        {
          bool = true;
          while (i1 > paramInt2)
          {
            if (!bool) {
              break;
            }
            bool = false;
            i1 = paramInt1;
          }
          localbb = this.l[i1];
          a(localbb);
          bool = b(localbb, true, true);
          i1++;
          if ((i3 == 0) && (i2 != 0)) {
            break;
          }
        } while (i2 == 0);
      }
    }
    boolean bool = true;
    break label90;
    label81:
    if (bool) {
      bool = false;
    }
    label90:
    while (i3 != 0)
    {
      i1 = paramInt1;
      if (i1 < paramInt2) {
        break label81;
      }
      localbb = this.l[i1];
      a(localbb);
      bool = b(localbb, true, true);
      i1--;
      if ((i3 == 0) && ((i2 == 0) && (i2 == 0))) {
        break;
      }
    }
  }
  
  private void a(bb parambb)
  {
    int i2 = f.o;
    int i1 = f.n;
    do
    {
      a.c.w localw = parambb.l();
      while (i1 == 0)
      {
        if (!localw.e()) {
          break;
        }
        localw.d().b(this.K);
        localw.d().a(this.L);
        localw.f();
      }
    } while (i2 != 0);
  }
  
  private void a(bb parambb, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i2 = f.o;
    int i1 = f.n;
    a.c.w localw = parambb.l();
    if (localw.e()) {
      if (i2 == 0) {
        if (paramBoolean2) {
          localw.d().b(this.K);
        }
      }
    }
    while (i2 != 0)
    {
      if (i2 == 0)
      {
        if (paramBoolean1) {
          localw.d().a(this.L);
        }
        localw.f();
      }
      if (i1 == 0) {
        break;
      }
    }
  }
  
  boolean b(bb parambb, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i7 = f.o;
    int i6 = f.n;
    boolean bool = false;
    Object localObject1 = parambb.f();
    int i1 = 0;
    e locale1;
    e locale2;
    int i3;
    int i4;
    label156:
    label223:
    label224:
    int i5;
    label297:
    label299:
    do
    {
      if (i1 >= parambb.size() - 1) {
        break;
      }
      Object localObject2 = localObject1;
      localObject1 = localObject2.a();
      locale1 = (e)localObject2.c();
      if ((i7 == 0) && (i6 != 0)) {
        break label424;
      }
      locale2 = (e)((v)localObject1).c();
      if (i7 == 0) {
        if (this.H)
        {
          i3 = this.J[locale1.f()];
          i4 = this.J[locale2.f()];
          if (i7 == 0)
          {
            if (i3 == -2147483648)
            {
              if (i7 != 0) {
                break label156;
              }
              if (i4 == -2147483648) {}
            }
            else
            {
              if (i7 != 0) {
                break label156;
              }
            }
          }
          else {
            if (i3 != i4) {
              break label412;
            }
          }
        }
      }
      i3 = 0;
      i4 = 0;
      if (i7 == 0) {
        if (paramBoolean1)
        {
          i3 = c(locale1, locale1.i(), locale2, locale2.i());
          if (i7 == 0) {
            if (!paramBoolean2)
            {
              if (i7 != 0) {
                break label224;
              }
              if (i3 <= 0) {
                break label223;
              }
            }
          }
          i4 = c(locale2, locale2.i(), locale1, locale1.i());
        }
      }
      if (i7 == 0) {
        if (paramBoolean2)
        {
          i3 += a(locale1, locale1.h(), locale2, locale2.h());
          if (i7 == 0) {
            if (!paramBoolean1)
            {
              if (i7 != 0) {
                break label299;
              }
              if (i3 <= 0) {
                break label297;
              }
            }
          }
          i4 += a(locale2, locale2.h(), locale1, locale1.h());
        }
      }
      if (i7 == 0)
      {
        if (i3 <= i4)
        {
          if (i7 != 0) {
            continue;
          }
          if (!paramBoolean1) {
            break label412;
          }
          if (i7 != 0) {
            continue;
          }
          if (!paramBoolean2) {
            break label412;
          }
          if (i7 != 0) {
            continue;
          }
          if (i4 != i3) {
            break label412;
          }
        }
        if (i7 != 0) {}
      }
      else if (i3 > i4)
      {
        bool = true;
      }
      i5 = this.c[locale1.f()];
      this.c[locale1.f()] = this.c[locale2.f()];
      this.c[locale2.f()] = i5;
      ((v)localObject1).a(locale1);
      localObject2.a(locale2);
      i1++;
    } while (i6 == 0);
    label412:
    label424:
    v localv = parambb.g();
    int i2 = parambb.size() - 1;
    if (i2 > 0)
    {
      localObject1 = localv;
      localv = ((v)localObject1).b();
    }
    label552:
    while (i7 != 0)
    {
      locale1 = (e)localv.c();
      locale2 = (e)((v)localObject1).c();
      if (i6 != 0) {
        break label785;
      }
      if (this.H)
      {
        i3 = this.J[locale1.f()];
        i4 = this.J[locale2.f()];
        if (i7 == 0)
        {
          if (i3 == -2147483648)
          {
            if (i7 != 0) {
              break label552;
            }
            if (i4 == -2147483648) {}
          }
          else
          {
            if (i7 != 0) {
              break label552;
            }
          }
        }
        else {
          if (i3 != i4) {
            break label770;
          }
        }
      }
      i3 = 0;
      i4 = 0;
      if (i7 == 0) {
        if (paramBoolean1)
        {
          i3 = c(locale1, locale1.i(), locale2, locale2.i());
          i4 = c(locale2, locale2.i(), locale1, locale1.i());
        }
      }
      if (i7 == 0) {
        if (paramBoolean2)
        {
          i3 += a(locale1, locale1.h(), locale2, locale2.h());
          i4 += a(locale2, locale2.h(), locale1, locale1.h());
        }
      }
      if (i7 == 0)
      {
        if (i3 <= i4)
        {
          if (i7 != 0) {
            break label775;
          }
          if (!paramBoolean1) {
            break label770;
          }
          if (i7 != 0) {
            break label775;
          }
          if (!paramBoolean2) {
            break label770;
          }
          if (i7 != 0) {
            break label775;
          }
          if (i4 != i3) {
            break label770;
          }
        }
        if (i7 != 0) {}
      }
      else if (i3 > i4)
      {
        bool = true;
      }
      i5 = this.c[locale1.f()];
      this.c[locale1.f()] = this.c[locale2.f()];
      this.c[locale2.f()] = i5;
      ((v)localObject1).a(locale1);
      localv.a(locale2);
      i2--;
      if (i6 == 0) {
        break;
      }
    }
    label770:
    label775:
    label785:
    return bool;
  }
  
  private int w()
  {
    if (f.o == 0) {
      if (this.U < 0) {
        this.U = x();
      }
    }
    return this.U;
  }
  
  private int x()
  {
    int i3 = f.o;
    int i2 = f.n;
    int i1 = -1;
    a.c.w localw = this.j.v();
    do
    {
      do
      {
        if (!localw.e()) {
          break;
        }
        Object localObject = a(localw.d());
        if (i2 != 0) {
          break label83;
        }
        if ((localObject instanceof Number)) {
          i1 = Math.max(i1, ((Number)localObject).intValue());
        }
        localw.f();
      } while (i2 == 0);
    } while (i3 != 0);
    label83:
    return i1 + 1;
  }
  
  private void y()
  {
    int i3 = f.o;
    int i2 = f.n;
    do
    {
      for (int i1 = 0; i2 == 0; i1++)
      {
        if (i1 >= this.l.length) {
          break;
        }
        a(i1, false, false);
      }
    } while (i3 != 0);
  }
  
  private void a(int paramInt, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i12 = f.o;
    int i11 = f.n;
    int[] arrayOfInt1 = this.I[paramInt];
    if (arrayOfInt1 == null) {
      return;
    }
    bb localbb = this.l[paramInt];
    z localz1 = new z();
    z localz2 = new z();
    int i1 = 0;
    label58:
    label206:
    label722:
    label750:
    label753:
    label760:
    label762:
    label1018:
    do
    {
      if (i1 >= arrayOfInt1.length) {
        break;
      }
      int i2 = arrayOfInt1[i1];
      Object localObject1 = null;
      Object localObject2 = null;
      localz1.clear();
      localz2.clear();
      Object localObject4;
      for (Object localObject3 = localbb.f();; localObject3 = ((v)localObject3).a())
      {
        if (localObject3 == null) {
          break label206;
        }
        localObject4 = (e)((v)localObject3).c();
        if (i12 != 0) {
          break label58;
        }
        if (i11 != 0) {
          break;
        }
        if (a(i2, (e)localObject4))
        {
          localObject1 = localObject2 = localObject3;
          for (localObject3 = ((v)localObject3).a();; localObject3 = ((v)localObject3).a())
          {
            if (localObject3 == null) {
              break label206;
            }
            localObject4 = (e)((v)localObject3).c();
            if ((i12 != 0) || (i12 != 0)) {
              break label58;
            }
            if (i11 != 0) {
              break;
            }
            if (a(i2, (e)localObject4)) {
              localObject2 = localObject3;
            }
          }
        }
      }
      if (i12 == 0)
      {
        if (localObject1 != localObject2) {
          localObject3 = localObject1;
        }
      }
      else
      {
        do
        {
          localz1.a(localObject3);
          localObject3 = ((v)localObject3).a();
          do
          {
            if (localObject3 == localObject2) {
              break;
            }
            if (i11 != 0) {
              break label322;
            }
            if (a(i2, (e)((v)localObject3).c()))
            {
              localz1.b(localObject3);
              if (i12 != 0) {
                continue;
              }
              if (i11 == 0) {}
            }
            else
            {
              localz2.b(localObject3);
            }
            localObject3 = ((v)localObject3).a();
          } while (i11 == 0);
          localz1.b(localObject3);
        } while (i12 != 0);
        if (localz2.size() > 0)
        {
          localObject4 = new v[localz2.size()];
          localz2.toArray((Object[])localObject4);
          int[] arrayOfInt2 = new int[localObject4.length];
          Arrays.fill(arrayOfInt2, 2147483647);
          int i4;
          if (i12 == 0) {}
          int i5 = (i4 = a(i2, localbb, localz1, localObject4[(localObject4.length - 1)], paramBoolean1, paramBoolean2)) < 0 ? 1 : 0;
          arrayOfInt2[(localObject4.length - 1)] = i4;
          int i3;
          if (i12 == 0) {
            if (localObject4.length == 1)
            {
              if (i12 == 0) {}
              i3 = i5 != 0 ? 0 : 1;
              if (i12 != 0) {
                break label1248;
              }
              if (i11 == 0) {
                break label1247;
              }
            }
          }
          if (i12 == 0) {
            if (i5 != 0)
            {
              i3 = localObject4.length;
              if (i12 != 0) {
                break label1248;
              }
              if (i11 == 0) {
                break label1247;
              }
            }
          }
          if (i12 == 0) {}
          i5 = (i4 = a(i2, localbb, localz1, localObject4[0], paramBoolean1, paramBoolean2)) < 0 ? 1 : 0;
          arrayOfInt2[0] = i4;
          if ((i12 != 0) || (arrayOfInt2[0] == 0)) {
            if (i12 != 0) {}
          }
          int i6 = arrayOfInt2[(localObject4.length - 1)] == 0 ? 1 : 0;
          if (i12 == 0) {
            if (i5 == 0)
            {
              if (i12 != 0) {
                break label579;
              }
              if (i6 == 0)
              {
                i3 = 0;
                if (i12 != 0) {
                  break label1248;
                }
                if (i11 == 0) {
                  break label1247;
                }
              }
            }
          }
          if (i12 == 0) {
            if (i6 != 0)
            {
              i3 = localObject4.length / 2;
              if ((i12 == 0) && (i11 == 0)) {
                break label762;
              }
            }
          }
          int i7 = localObject4.length - 1;
          int i8 = 0;
          int i9;
          do
          {
            do
            {
              if (i7 - i8 <= 1) {
                break label753;
              }
              i9 = i8 + (i7 - i8) / 2;
              i4 = a(i2, localbb, localz1, localObject4[i9], paramBoolean1, paramBoolean2);
              arrayOfInt2[i9] = i4;
              if (i11 != 0) {
                break label760;
              }
              if (i4 == 0)
              {
                if (i12 == 0) {}
                i5 = i9 < localObject4.length / 2 ? 1 : 0;
                if (i12 != 0) {
                  break label722;
                }
                if (i11 == 0) {}
              }
              else
              {
                if (i12 == 0) {}
                i5 = i4 < 0 ? 1 : 0;
              }
              if (i12 != 0) {
                break label750;
              }
              if (i5 == 0) {
                break;
              }
              i8 = i9;
              if (i12 != 0) {
                break label750;
              }
            } while (i11 == 0);
            i7 = i9;
          } while (i11 == 0);
          if (i12 == 0)
          {
            i3 = i8;
            e locale = (e)localObject4[i3].c();
            i8 = this.J[locale.f()];
            if (i12 == 0) {
              if (i8 != -2147483648)
              {
                if (i12 != 0) {
                  break label1248;
                }
                if (i8 < i2)
                {
                  int i10;
                  if (i12 == 0) {
                    if (i4 > 0)
                    {
                      do
                      {
                        if (i3 <= 0) {
                          break;
                        }
                        if (i12 != 0) {
                          break label878;
                        }
                        if (i11 != 0) {
                          break label876;
                        }
                        if (!a(i8, (e)localObject4[(i3 - 1)].c())) {
                          break;
                        }
                        i3--;
                      } while (i11 == 0);
                      if (i12 == 0) {
                        if (arrayOfInt2[i3] == 2147483647) {
                          arrayOfInt2[i3] = a(i2, localbb, localz1, localObject4[i3], paramBoolean1, paramBoolean2);
                        }
                      }
                      if (i12 != 0) {
                        break label1248;
                      }
                      if (arrayOfInt2[i3] >= 0) {
                        break label1247;
                      }
                      i9 = 0;
                      i10 = i3;
                      do
                      {
                        if (i10 >= localObject4.length) {
                          break;
                        }
                        if (i11 != 0) {
                          break label1018;
                        }
                        if (!a(i8, (e)localObject4[i10].c())) {
                          break;
                        }
                        if (i12 == 0) {
                          if (arrayOfInt2[i10] == 2147483647) {
                            arrayOfInt2[i10] = a(i2, localbb, localz1, localObject4[i10], paramBoolean1, paramBoolean2);
                          }
                        }
                        i9 += arrayOfInt2[i10];
                        i10++;
                      } while (i11 == 0);
                      if ((i12 != 0) || (i9 >= 0)) {
                        break label1247;
                      }
                      i3 = i10;
                      if (i12 != 0) {
                        break label1248;
                      }
                      if (i11 == 0) {
                        break label1247;
                      }
                    }
                  }
                  do
                  {
                    if (i3 >= localObject4.length) {
                      break;
                    }
                    if (i12 != 0) {
                      break label1095;
                    }
                    if (i11 != 0) {
                      break label1093;
                    }
                    if (!a(i8, (e)localObject4[i3].c())) {
                      break;
                    }
                    i3++;
                  } while (i11 == 0);
                  if (i12 == 0) {
                    if (arrayOfInt2[(i3 - 1)] == 2147483647) {
                      arrayOfInt2[(i3 - 1)] = a(i2, localbb, localz1, localObject4[i3], paramBoolean1, paramBoolean2);
                    }
                  }
                  if (i12 != 0) {
                    break label1248;
                  }
                  if (arrayOfInt2[(i3 - 1)] >= 0)
                  {
                    i9 = 0;
                    i10 = i3 - 1;
                    do
                    {
                      if (i10 < 0) {
                        break;
                      }
                      if (i11 != 0) {
                        break label1238;
                      }
                      if (!a(i8, (e)localObject4[i10].c())) {
                        break;
                      }
                      if (i12 == 0) {
                        if (arrayOfInt2[i10] == 2147483647) {
                          arrayOfInt2[i10] = a(i2, localbb, localz1, localObject4[i10], paramBoolean1, paramBoolean2);
                        }
                      }
                      i9 += arrayOfInt2[i10];
                      i10--;
                    } while (i11 == 0);
                    if ((i12 == 0) && (i9 > 0)) {
                      i3 = i10 + 1;
                    }
                  }
                }
              }
            }
            i6 = 0;
            do
            {
              do
              {
                if (i6 >= i3) {
                  break;
                }
                localbb.h(localObject4[i6]);
                localbb.a(localObject4[i6], localObject1);
                i6++;
                if (i12 != 0) {
                  break label1312;
                }
                if (i11 != 0) {
                  break label1310;
                }
              } while (i11 == 0);
            } while (i12 != 0);
            i6 = localObject4.length - 1;
            if (i6 >= i3) {}
            while (i12 != 0)
            {
              localbb.h(localObject4[i6]);
              localbb.b(localObject4[i6], localObject2);
              i6--;
              if (i12 != 0) {
                break label1374;
              }
              if (i11 != 0) {
                break label1372;
              }
              if (i11 == 0) {
                break;
              }
            }
            a(localbb);
          }
        }
      }
      i1++;
    } while (i11 == 0);
    label322:
    label579:
    label876:
    label878:
    return;
  }
  
  private int a(int paramInt, z paramz1, z paramz2, v paramv, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i5 = f.o;
    int i4 = f.n;
    if (i5 == 0) {
      if (!paramBoolean1)
      {
        if (i5 != 0) {
          break label33;
        }
        if (!paramBoolean2) {
          return 0;
        }
      }
    }
    label33:
    int i1 = 0;
    int i2 = 0;
    e locale1 = (e)paramv.c();
    v localv1 = paramv.b();
    v localv2 = paramv.a();
    int i3 = this.c[((e)paramv.c()).f()] + 1;
    paramz1.h(paramv);
    paramz1.a(paramv, (v)paramz2.a());
    a(paramz1);
    a(locale1, paramBoolean1, paramBoolean2);
    v localv3 = paramz2.f();
    e locale2;
    do
    {
      do
      {
        if (this.c[((e)((v)localv3.c()).c()).f()] >= i3) {
          break;
        }
        locale2 = (e)((v)localv3.c()).c();
        if (i4 != 0) {
          break label453;
        }
        if (a(paramInt, locale2))
        {
          if (i5 == 0) {
            if (paramBoolean1) {
              i1 += c(locale1, locale1.i(), locale2, locale2.i());
            }
          }
          if (i5 != 0) {
            continue;
          }
          if (paramBoolean2) {
            i1 += a(locale1, locale1.h(), locale2, locale2.h());
          }
        }
        localv3 = localv3.a();
      } while (i4 == 0);
      paramz1.h(paramv);
      paramz1.b(paramv, (v)paramz2.d());
      a(paramz1);
    } while (i5 != 0);
    a(locale1, paramBoolean1, paramBoolean2);
    do
    {
      if (localv3 == null) {
        break;
      }
      locale2 = (e)((v)localv3.c()).c();
      if (i4 != 0) {
        break label453;
      }
      if (a(paramInt, locale2))
      {
        if (i5 == 0) {
          if (paramBoolean1) {
            i2 += c(locale2, locale2.i(), locale1, locale1.i());
          }
        }
        if (i5 != 0) {
          continue;
        }
        if (paramBoolean2) {
          i2 += a(locale2, locale2.h(), locale1, locale1.h());
        }
      }
      localv3 = localv3.a();
    } while (i4 == 0);
    paramz1.h(paramv);
    paramz1.a(paramv, localv2);
    a(paramz1);
    a(locale1, paramBoolean1, paramBoolean2);
    if (i5 == 0) {}
    label453:
    return i1 - i2;
  }
  
  private void a(e parame, boolean paramBoolean1, boolean paramBoolean2)
  {
    int i2 = f.o;
    int i1 = f.n;
    m localm;
    if (i2 == 0) {
      if (paramBoolean1)
      {
        localm = parame.m();
        do
        {
          if (!localm.e()) {
            break;
          }
          localm.a().e().b(this.K);
          localm.f();
          if ((i2 == 0) && (i1 != 0)) {
            return;
          }
        } while (i1 == 0);
      }
    }
    if ((i2 == 0) && (paramBoolean2))
    {
      localm = parame.n();
      do
      {
        if (!localm.e()) {
          break;
        }
        localm.a().f().a(this.L);
        localm.f();
      } while (i1 == 0);
    }
  }
  
  private void a(z paramz)
  {
    int i3 = f.o;
    int i2 = f.n;
    int i1 = 0;
    do
    {
      for (v localv = paramz.f(); i2 == 0; localv = localv.a())
      {
        if (localv == null) {
          break;
        }
        this.c[((e)localv.c()).f()] = (i1++);
      }
    } while (i3 != 0);
  }
  
  private boolean a(int paramInt, e parame)
  {
    int i1 = f.o;
    if (i1 == 0)
    {
      if (paramInt == -2147483648) {
        break label35;
      }
      if (i1 != 0) {
        break label32;
      }
    }
    label32:
    label35:
    return this.J[parame.f()] == paramInt;
  }
  
  private Object a(e parame)
  {
    k localk = this.j.c(G);
    if ((f.o != 0) || (localk != null)) {
      return localk.get(parame);
    }
    return null;
  }
  
  private int b(e parame1, e parame2)
  {
    return c(parame1, parame1.i(), parame2, parame2.i()) + a(parame1, parame1.h(), parame2, parame2.h());
  }
  
  private int a(e parame1, d paramd1, e parame2, d paramd2)
  {
    int i12 = f.o;
    int i11 = f.n;
    int i1 = 0;
    int i2 = 0;
    label195:
    label197:
    label199:
    do
    {
      int i3;
      int i4;
      do
      {
        if (paramd1 == null) {
          break;
        }
        if (i12 != 0) {
          break label267;
        }
        if (paramd2 == null) {
          break;
        }
        i3 = this.c[paramd1.f().f()];
        i4 = this.c[paramd2.f().f()];
        if (this.z != null)
        {
          if (i12 != 0) {
            break label199;
          }
          if (i3 == i4)
          {
            int i7;
            int i5;
            int i8;
            int i6;
            if (i12 == 0) {
              if ((i5 = this.z[(i7 = paramd1.d())]) > (i6 = this.z[(i8 = paramd2.d())]))
              {
                i2++;
                if (i12 != 0) {
                  break label197;
                }
                if (i11 == 0) {
                  break label195;
                }
              }
            }
            if (i12 != 0) {
              break label199;
            }
            if (i5 == i6)
            {
              int i9 = this.B[i7];
              int i10 = this.B[i8];
              if (i12 != 0) {
                break label197;
              }
              if (i9 != 0)
              {
                if (i12 != 0) {
                  break label197;
                }
                if (i10 != 0)
                {
                  if (i12 != 0) {
                    break label199;
                  }
                  if (i9 > i10) {
                    i2++;
                  }
                }
              }
            }
          }
        }
        if (i12 == 0) {
          if (i3 <= i4)
          {
            i2 += i1;
            paramd1 = paramd1.i();
          }
        }
      } while (((i12 == 0) && (i11 == 0)) || (i3 < i4));
      i1++;
      paramd2 = paramd2.i();
      if (i12 != 0) {
        break label304;
      }
      if ((i12 == 0) && (i11 != 0)) {
        break label297;
      }
    } while (i11 == 0);
    label267:
    label297:
    while (i12 != 0) {
      while (i11 == 0)
      {
        if (paramd1 == null) {
          break;
        }
        if (i12 == 0)
        {
          if (i11 != 0) {
            break label304;
          }
          i2 += i1;
          paramd1 = paramd1.i();
        }
      }
    }
    label304:
    return i2;
  }
  
  private int c(e parame1, d paramd1, e parame2, d paramd2)
  {
    int i12 = f.o;
    int i11 = f.n;
    int i1 = 0;
    int i2 = 0;
    label195:
    label197:
    label199:
    do
    {
      int i3;
      int i4;
      do
      {
        if (paramd1 == null) {
          break;
        }
        if (i12 != 0) {
          break label267;
        }
        if (paramd2 == null) {
          break;
        }
        i3 = this.c[paramd1.e().f()];
        i4 = this.c[paramd2.e().f()];
        if (this.y != null)
        {
          if (i12 != 0) {
            break label199;
          }
          if (i3 == i4)
          {
            int i7;
            int i5;
            int i8;
            int i6;
            if (i12 == 0) {
              if ((i5 = this.y[(i7 = paramd1.d())]) > (i6 = this.y[(i8 = paramd2.d())]))
              {
                i2++;
                if (i12 != 0) {
                  break label197;
                }
                if (i11 == 0) {
                  break label195;
                }
              }
            }
            if (i12 != 0) {
              break label199;
            }
            if (i5 == i6)
            {
              int i9 = this.A[i7];
              int i10 = this.A[i8];
              if (i12 != 0) {
                break label197;
              }
              if (i9 != 0)
              {
                if (i12 != 0) {
                  break label197;
                }
                if (i10 != 0)
                {
                  if (i12 != 0) {
                    break label199;
                  }
                  if (i9 > i10) {
                    i2++;
                  }
                }
              }
            }
          }
        }
        if (i12 == 0) {
          if (i3 <= i4)
          {
            i2 += i1;
            paramd1 = paramd1.j();
          }
        }
      } while (((i12 == 0) && (i11 == 0)) || (i3 < i4));
      i1++;
      paramd2 = paramd2.j();
      if (i12 != 0) {
        break label304;
      }
      if ((i12 == 0) && (i11 != 0)) {
        break label297;
      }
    } while (i11 == 0);
    label267:
    label297:
    while (i12 != 0) {
      while (i11 == 0)
      {
        if (paramd1 == null) {
          break;
        }
        if (i12 == 0)
        {
          if (i11 != 0) {
            break label304;
          }
          i2 += i1;
          paramd1 = paramd1.j();
        }
      }
    }
    label304:
    return i2;
  }
  
  public boolean z()
  {
    return this.H;
  }
  
  public void e(boolean paramBoolean)
  {
    this.H = paramBoolean;
  }
  
  public long A()
  {
    return this.n;
  }
  
  public int B()
  {
    return this.V;
  }
  
  public void c(int paramInt)
  {
    this.V = paramInt;
  }
  
  class e_
    implements Comparator
  {
    boolean a;
    boolean c;
    
    e_(boolean paramBoolean1, boolean paramBoolean2)
    {
      this.a = paramBoolean1;
      this.c = paramBoolean2;
    }
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      int i = f.o;
      d locald1 = (d)paramObject2;
      d locald2 = (d)paramObject1;
      if (i == 0) {
        if (this.a)
        {
          if (i == 0) {
            if (this.c) {
              return l.a(r.this.j.p(locald1).a, r.this.j.p(locald2).a);
            }
          }
          return l.a(r.this.j.p(locald1).b, r.this.j.p(locald2).b);
        }
      }
      if (i == 0) {
        if (this.c) {
          return l.a(r.this.j.q(locald1).a, r.this.j.q(locald2).a);
        }
      }
      return l.a(r.this.j.q(locald1).b, r.this.j.q(locald2).b);
    }
  }
  
  class h_
    implements Comparator
  {
    h_() {}
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      int i11 = f.o;
      d locald1 = (d)paramObject1;
      d locald2 = (d)paramObject2;
      int i;
      int k = r.this.z[(i = locald1.d())];
      int j;
      int m = r.this.z[(j = locald2.d())];
      int n = l.a(k, m);
      if (i11 == 0) {
        if (n != 0) {
          return n;
        }
      }
      int i1 = r.this.B[i];
      int i2 = r.this.B[j];
      if (i11 == 0) {
        if (i1 > 0)
        {
          if (i11 == 0) {
            if (i2 > 0) {
              return l.a(i1, i2);
            }
          }
          return -1;
        }
      }
      if (i11 == 0) {
        if (i2 > 0) {
          return 1;
        }
      }
      int i3 = locald1.e().f();
      int i4 = r.this.c[i3];
      int i5 = locald2.e().f();
      int i6 = r.this.c[i5];
      int i7 = l.a(i4, i6);
      if (i11 == 0) {
        if (i7 != 0) {
          return i7;
        }
      }
      int i8 = l.a(r.this.y[i], r.this.y[j]);
      if (i11 == 0) {
        if (i8 != 0) {
          return i8;
        }
      }
      int i9 = r.this.A[i];
      int i10 = r.this.A[j];
      if (i11 == 0) {
        if (i9 > 0)
        {
          if (i11 == 0) {
            if (i10 > 0) {
              return l.a(i9, i10);
            }
          }
          return -1;
        }
      }
      if (i11 == 0) {
        if (i10 > 0) {
          return 1;
        }
      }
      return 0;
    }
  }
  
  class d_
    implements Comparator
  {
    d_() {}
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      int i11 = f.o;
      d locald1 = (d)paramObject1;
      d locald2 = (d)paramObject2;
      int i;
      int k = r.this.y[(i = locald1.d())];
      int j;
      int m = r.this.y[(j = locald2.d())];
      int n = l.a(k, m);
      if (i11 == 0) {
        if (n != 0) {
          return n;
        }
      }
      int i1 = r.this.A[i];
      int i2 = r.this.A[j];
      if (i11 == 0) {
        if (i1 > 0)
        {
          if (i11 == 0) {
            if (i2 > 0) {
              return l.a(i1, i2);
            }
          }
          return -1;
        }
      }
      if (i11 == 0) {
        if (i2 > 0) {
          return 1;
        }
      }
      int i3 = locald1.f().f();
      int i4 = r.this.c[i3];
      int i5 = locald2.f().f();
      int i6 = r.this.c[i5];
      int i7 = l.a(i4, i6);
      if (i11 == 0) {
        if (i7 != 0) {
          return i7;
        }
      }
      int i8 = l.a(r.this.z[i], r.this.z[j]);
      if (i11 == 0) {
        if (i8 != 0) {
          return i8;
        }
      }
      int i9 = r.this.B[i];
      int i10 = r.this.B[j];
      if (i11 == 0) {
        if (i9 > 0)
        {
          if (i11 == 0) {
            if (i10 > 0) {
              return l.a(i9, i10);
            }
          }
          return -1;
        }
      }
      if (i11 == 0) {
        if (i10 > 0) {
          return 1;
        }
      }
      return 0;
    }
  }
  
  class f_
    implements Comparator
  {
    f_() {}
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      int i12 = f.o;
      d locald1 = (d)paramObject1;
      d locald2 = (d)paramObject2;
      int i = l.a(r.this.c[locald1.f().f()], r.this.c[locald2.f().f()]);
      if ((i12 != 0) || (i != 0)) {
        return i;
      }
      int j;
      int m = r.this.z[(j = locald1.d())];
      int k;
      int n = r.this.z[(k = locald2.d())];
      int i1 = l.a(m, n);
      if (i12 == 0) {
        if (i1 != 0) {
          return i1;
        }
      }
      int i2 = r.this.B[j];
      int i3 = r.this.B[k];
      if (i12 == 0) {
        if (i2 > 0)
        {
          if (i12 == 0) {
            if (i3 > 0) {
              return l.a(i2, i3);
            }
          }
          return -1;
        }
      }
      if (i12 == 0) {
        if (i3 > 0) {
          return 1;
        }
      }
      int i4 = locald1.e().f();
      int i5 = r.this.c[i4];
      int i6 = locald2.e().f();
      int i7 = r.this.c[i6];
      int i8 = l.a(i5, i7);
      if (i12 == 0) {
        if (i8 != 0) {
          return i8;
        }
      }
      int i9 = l.a(r.this.y[j], r.this.y[k]);
      if (i12 == 0) {
        if (i9 != 0) {
          return i9;
        }
      }
      int i10 = r.this.A[j];
      int i11 = r.this.A[k];
      if (i12 == 0) {
        if (i10 > 0)
        {
          if (i12 == 0) {
            if (i11 > 0) {
              return l.a(i10, i11);
            }
          }
          return -1;
        }
      }
      if (i12 == 0) {
        if (i11 > 0) {
          return 1;
        }
      }
      return 0;
    }
  }
  
  class g_
    implements Comparator
  {
    g_() {}
    
    public int compare(Object paramObject1, Object paramObject2)
    {
      int i12 = f.o;
      d locald1 = (d)paramObject1;
      d locald2 = (d)paramObject2;
      int i = l.a(r.this.c[locald1.e().f()], r.this.c[locald2.e().f()]);
      if ((i12 != 0) || (i != 0)) {
        return i;
      }
      int j;
      int m = r.this.y[(j = locald1.d())];
      int k;
      int n = r.this.y[(k = locald2.d())];
      int i1 = l.a(m, n);
      if (i12 == 0) {
        if (i1 != 0) {
          return i1;
        }
      }
      int i2 = r.this.A[j];
      int i3 = r.this.A[k];
      if (i12 == 0) {
        if (i2 > 0)
        {
          if (i12 == 0) {
            if (i3 > 0) {
              return l.a(i2, i3);
            }
          }
          return -1;
        }
      }
      if (i12 == 0) {
        if (i3 > 0) {
          return 1;
        }
      }
      int i4 = locald1.f().f();
      int i5 = r.this.c[i4];
      int i6 = locald2.f().f();
      int i7 = r.this.c[i6];
      int i8 = l.a(i5, i7);
      if (i12 == 0) {
        if (i8 != 0) {
          return i8;
        }
      }
      int i9 = l.a(r.this.z[j], r.this.z[k]);
      if (i12 == 0) {
        if (i9 != 0) {
          return i9;
        }
      }
      int i10 = r.this.B[j];
      int i11 = r.this.B[k];
      if (i12 == 0) {
        if (i10 > 0)
        {
          if (i12 == 0) {
            if (i11 > 0) {
              return l.a(i10, i11);
            }
          }
          return -1;
        }
      }
      if (i12 == 0) {
        if (i11 > 0) {
          return 1;
        }
      }
      return 0;
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.f.d.r

 * JD-Core Version:    0.7.0.1

 */